hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/ | GSoC2018: https://wp.me/p4pxJf-k1
anushi has joined #ste||ar
eschnett has joined #ste||ar
parsa has quit [Quit: Zzzzzzzzzzzz]
parsa has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
parsa has quit [Quit: Zzzzzzzzzzzz]
anushi has quit [Remote host closed the connection]
anushi has joined #ste||ar
parsa has joined #ste||ar
eschnett has quit [Quit: eschnett]
parsa has quit [Quit: Zzzzzzzzzzzz]
anushi has quit [Remote host closed the connection]
anushi has joined #ste||ar
parsa has joined #ste||ar
hkaiser has quit [Quit: bye]
anushi has quit [Remote host closed the connection]
parsa has quit [Quit: Zzzzzzzzzzzz]
nanashi55 has quit [Ping timeout: 248 seconds]
nanashi55 has joined #ste||ar
jaafar has quit [Ping timeout: 264 seconds]
quaz0r has quit [Ping timeout: 256 seconds]
quaz0r has joined #ste||ar
daissgr1 has joined #ste||ar
<github> [hpx] msimberg pushed 1 new commit to master: https://git.io/fNuQo
<github> hpx/master 9a0d280 Mikael Simberg: Merge pull request #3394 from STEllAR-GROUP/msimberg-patch-1...
jakub_golinowski has joined #ste||ar
<jakub_golinowski> ms[m]1, yt?
<ms[m]1> jakub_golinowski: here
<jakub_golinowski> So I was wondering about the proper way of "threading" in hpx
<jakub_golinowski> in the MartyCam there are 2 let say worker threads that are running all the time
<jakub_golinowski> in the webcam example I dealt with that by scheduling a future to a function with a while(!finished){} loop
<jakub_golinowski> so should I approach it in the same way here?
daissgr1 has quit [Quit: WeeChat 1.9.1]
<ms[m]1> jakub_golinowski: so there are probably many ways to do this
<ms[m]1> but the most important thing is that webcam capture and image processing are on different pools, and this you've already done
<ms[m]1> now for the next part it depends a bit how fancy you want to get
<jakub_golinowski> Well for now I would like to have a working example with Qt
<ms[m]1> then try to go for the same way with Qt first
<ms[m]1> I'm thinking it could be possible to let the image capture and processing go out of sync, and for example change the frame rate if the processing starts lagging behind
<ms[m]1> but it can quickly get complicated
<jakub_golinowski> ok, thanks
<jakub_golinowski> ms[m]1, is there an example with making future with the non-static member fucntion?
<ms[m]1> jakub_golinowski: hmm, not sure, but something like hpx::async(class_name::function_name, this or instance_name) should work
<jakub_golinowski> so I tried different configurations and read a bit on the net and still no succes
<jakub_golinowski> currently I make such a call
<jakub_golinowski> hpx::future<void> captureThreadFinished =
<jakub_golinowski> hpx::async<>(exec, &CaptureThread::run, captureThread);
<ms[m]1> hmm, looks more or less correct
<jakub_golinowski> and the error I get is the following:
<jakub_golinowski> hpx::future<void> captureThreadFinished =
<jakub_golinowski> hpx::async<>(exec, &CaptureThread::run, captureThread);
<jakub_golinowski> again:
<jakub_golinowski> error: no matching function for call to ‘async(void (CaptureThread::*)(), CaptureThread*&)’
<jakub_golinowski> hpx::async<>(&CaptureThread::run, captureThread);
<ms[m]1> if all else fails hpx::async(exec, [captureThread]() { captureThread.run(); })
<ms[m]1> or capture by reference if needed
<jakub_golinowski> ms[m]1, here is the full error: https://pastebin.com/FcNHRXkw
<jakub_golinowski> is it possible that it needs some hpx actions approach>
<jakub_golinowski> ?
<ms[m]1> mmh, no, actions are only needed for remote execution
<ms[m]1> jakub_golinowski: I don't know, I thought it would be possible but maybe it's not
<ms[m]1> I'd say use the lambda for now
<jakub_golinowski> ms[m]1, the lambda seems not to be working as well
<ms[m]1> :/
<ms[m]1> what error is it giving?
<jakub_golinowski> ms[m]1, https://pastebin.com/HvTt970A
<jakub_golinowski> this is with the capture by copy
<ms[m]1> wait is captureThread a value or pointer? why is this there?
<jakub_golinowski> so captureThread is the pointer to the instance of the class (Q_Object)
<ms[m]1> then remove "this->"?
<jakub_golinowski> and this pointer is a member data filed of the MartyCam class
<ms[m]1> can you show the whole code?
<ms[m]1> in that case you should capture this
<jakub_golinowski> I can commit it it in the current non-compiling state
<jakub_golinowski> (then rewrite history since it is in the branch in the fork)
<ms[m]1> sure
<ms[m]1> what's the error message now?
<jakub_golinowski> ms[m]1, with such an approachL
<jakub_golinowski> hpx::future<void> captureThreadFinished =
<jakub_golinowski> hpx::async<>(exec, [this]() { captureThread->run(); });
<jakub_golinowski> the error message is as follows: https://pastebin.com/3kkXjjzZ
<ms[m]1> huh
<ms[m]1> long shot, can you try removing the angle brackets after async
<jakub_golinowski> ms[m]1, hmm the error is the same
<jakub_golinowski> but I was wondering what was the <> here for
<ms[m]1> it's for template parameters but when there's nothing there the compiler deduces the parameters for you
<ms[m]1> okay, I'm clueless, so try step by step: empty lambda, empty lambda capturing this
<jakub_golinowski> ms[m]1, hmm seeem not to be able to call any lambda
<jakub_golinowski> even with just std::cout
<ms[m]1> not even hpx::async([](){})?
<jakub_golinowski> ms[m]1, nope, not even that
<ms[m]1> uhh...
<jakub_golinowski> for some reason compiler interprets such a lambda as:
<jakub_golinowski> error: no matching function for call to ‘async(MartyCam::createCaptureThread(int, cv::Size&, int, const string&, hpx::threads::executors::pool_executor)::<lambda()>)’
<jakub_golinowski> hpx::async([](){});
<jakub_golinowski> Is there some restriction as to where the async can be used?
<jakub_golinowski> For example forbidden in constructors or sth like this?
<ms[m]1> ugh, can you include hpx/lcos/async?
<ms[m]1> or hpx/include/async
<jakub_golinowski> :/
<ms[m]1> does it work?
<jakub_golinowski> hpx::async([](){}); this went through
<ms[m]1> okay, I think you were getting the actionized overloads of hpx::async, it should work now
<ms[m]1> I think I've done the same once before... it's too obvious of a problem
<jakub_golinowski> it seems to work -.- sorry for that
<jakub_golinowski> i included the lcos/futures and thought - yeah it is enough
<jakub_golinowski> thank you very much again
<ms[m]1> no worries, glad it works
eschnett has joined #ste||ar
mcopik has joined #ste||ar
hkaiser has joined #ste||ar
<github> [hpx] hkaiser deleted sync_actions at 143938e: https://git.io/fNzJD
K-ballo has joined #ste||ar
nikunj has joined #ste||ar
nanashi55 has quit [Ping timeout: 256 seconds]
<nikunj> hkaiser, yt?
nanashi55 has joined #ste||ar
hkaiser has quit [Quit: bye]
eschnett has quit [Quit: eschnett]
nanashi55 has quit [Ping timeout: 255 seconds]
nanashi55 has joined #ste||ar
nikunj97 has joined #ste||ar
nikunj has quit [Ping timeout: 248 seconds]
nanashi55 has quit [Ping timeout: 268 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
aserio has joined #ste||ar
hkaiser has joined #ste||ar
nanashi55 has quit [Ping timeout: 264 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 260 seconds]
nanashi55 has joined #ste||ar
<K-ballo> someone's playing with parallel algorithms, asking about performance on the slack hpx channel
<hkaiser> K-ballo: thanks
nikunj97 has quit [Read error: Connection reset by peer]
parsa has joined #ste||ar
jakub_golinowski has quit [Ping timeout: 256 seconds]
parsa has quit [Quit: Zzzzzzzzzzzz]
aserio1 has joined #ste||ar
nanashi55 has quit [Ping timeout: 268 seconds]
aserio has quit [Ping timeout: 265 seconds]
aserio1 is now known as aserio
nanashi55 has joined #ste||ar
galabc has joined #ste||ar
<ms[m]1> K-ballo: is it a stellar/hpx slack channel? where can I find it? I'd like to join
<K-ballo> no, a cpplang/hpx slack channel
jakub_golinowski has joined #ste||ar
nanashi55 has quit [Ping timeout: 268 seconds]
<jakub_golinowski> ms[m]1, yt?
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 256 seconds]
aserio has quit [Read error: Connection reset by peer]
aserio has joined #ste||ar
jaafar has joined #ste||ar
nanashi55 has joined #ste||ar
aserio has quit [Ping timeout: 248 seconds]
nanashi55 has quit [Ping timeout: 248 seconds]
nanashi55 has joined #ste||ar
parsa has joined #ste||ar
parsa has quit [Client Quit]
<github> [hpx] StellarBot pushed 1 new commit to gh-pages: https://git.io/fNzBF
<github> hpx/gh-pages b3dbe5d StellarBot: Updating docs
aserio has joined #ste||ar
aserio has quit [Ping timeout: 276 seconds]
aserio has joined #ste||ar
aserio1 has joined #ste||ar
<jakub_golinowski> Does anybody have an idea why the commend out part of this small example does not work: https://pastebin.com/RrU8ePpy?
aserio has quit [Ping timeout: 276 seconds]
aserio1 is now known as aserio
<K-ballo> most vexing parse, ImageQueue imageQueue(); declares a function, not a variable
<K-ballo> compiler should be warning?
<K-ballo> (actually just vexing parse, not the most vexing parse)
<jakub_golinowski> K-ballo, coul dyou elaborate
<jakub_golinowski> a wait
<K-ballo> ImageQueue imageQueue(); declares a function called `imageQueue` which takes no arguments and returns an `ImageQueue`
<jakub_golinowski> K-ballo, oh that is not what I want
<K-ballo> I can imagine
<K-ballo> you want either ImageQueue imageQueue{}; or ImageQueue imageQueue; or even ImageQueue imageQueue= ImageQueue(); depending on the kind of type you hvae
<jakub_golinowski> So high-level I want to have the spsc_queue from boost::lockfree
<jakub_golinowski> most preferably inside a shared pointer
<jakub_golinowski> but somehow I could not achieve it :/
<K-ballo> that's highly unlikely, doesn't boost::lockfree require trivially copyable element types?
<K-ballo> oh no, actually it doesn't.. mmh, curious
<K-ballo> Requirements:
<K-ballo> T must have a default constructor
<K-ballo> T must be copyable
<K-ballo> `std::shared_ptr<ImageQueue>` would satisfy those requirements
<jakub_golinowski> so this spsc queue is supposed to work with more complex element
<K-ballo> regardless of the actual definition of `ImageQueue`, so any `std::shared_ptr<T>` would
<jakub_golinowski> K-ballo, hmm I think I have a problem somewhere let say earlier
hkaiser has quit [Ping timeout: 265 seconds]
nanashi55 has quit [Ping timeout: 265 seconds]
nanashi55 has joined #ste||ar
<jakub_golinowski> K-ballo, ah my problems were: (1) wronge #include in cpp (2) (revealed later) - erorr in cmake
aserio has quit [Ping timeout: 264 seconds]
hkaiser has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
hkaiser has quit [Quit: bye]
galabc has quit [Quit: Leaving]
aserio has joined #ste||ar
nanashi64 has joined #ste||ar
<jakub_golinowski> K-ballo, thanks for the help :D
<jakub_golinowski> ms[m]1, I commited the first sketch of the semi-rewrite of the MartyCam to the opencv_hpx_backend repo
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi64 is now known as nanashi55
jakub_golinowski has quit [Ping timeout: 260 seconds]
nanashi55 has quit [Ping timeout: 256 seconds]
nanashi55 has joined #ste||ar
<ms[m]1> jakub_golinowski: cool
<ms[m]1> what exactly does semi-rewrite mean? does it compile? :)
mcopik has quit [Ping timeout: 240 seconds]
hkaiser has joined #ste||ar
nanashi64 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi64 is now known as nanashi55
<aserio> hkaiser: We are ready
<hkaiser> aserio: will you start the call?
<hkaiser> aserio: I can do that as well
<aserio> I've got it
nanashi64 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi64 is now known as nanashi55
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar
aserio has quit [Quit: aserio]
parsa has joined #ste||ar
nanashi55 has quit [Ping timeout: 260 seconds]
galabc has joined #ste||ar
galabc has quit [Client Quit]
nanashi55 has joined #ste||ar
<K-ballo> do we have a way to "test" logs?