aserio 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/
rtohid has left #ste||ar [#ste||ar]
EverYoun_ has quit [Ping timeout: 276 seconds]
EverYoung has quit [Ping timeout: 252 seconds]
EverYoung has joined #ste||ar
EverYoun_ has joined #ste||ar
EverYoun_ has quit [Remote host closed the connection]
EverYoun_ has joined #ste||ar
parsa has quit [Quit: Zzzzzzzzzzzz]
EverYoung has quit [Ping timeout: 265 seconds]
parsa has joined #ste||ar
parsa has quit [Ping timeout: 240 seconds]
EverYoun_ has quit [Ping timeout: 265 seconds]
EverYoung has joined #ste||ar
EverYoung has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
EverYoun_ has joined #ste||ar
EverYoung has quit [Read error: Connection reset by peer]
Anushi1998 has quit [Remote host closed the connection]
EverYoun_ has quit [Ping timeout: 240 seconds]
EverYoung has joined #ste||ar
EverYoung has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
Anushi1998 has joined #ste||ar
EverYoung has quit [Ping timeout: 265 seconds]
EverYoung has joined #ste||ar
EverYoun_ has joined #ste||ar
EverYoung has quit [Read error: Connection reset by peer]
EverYoung has joined #ste||ar
EverYoun_ has quit [Read error: Connection reset by peer]
EverYoung has quit [Ping timeout: 260 seconds]
nanashi55 has quit [Ping timeout: 265 seconds]
nanashi55 has joined #ste||ar
Anushi1998 has quit [Ping timeout: 260 seconds]
EverYoung has joined #ste||ar
Anushi1998 has joined #ste||ar
EverYoung has quit [Ping timeout: 252 seconds]
K-ballo has quit [Quit: K-ballo]
Anushi1998 has quit [Read error: Connection reset by peer]
Anushi1998 has joined #ste||ar
gedaj_ is now known as gedaj
parsa has joined #ste||ar
nanashi55 has quit [Ping timeout: 260 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 260 seconds]
nanashi55 has joined #ste||ar
Anushi1998 has quit [Ping timeout: 252 seconds]
Anushi1998 has joined #ste||ar
CaptainRubik has joined #ste||ar
<CaptainRubik>
jbjnr : Could you take a look at the proposal Thank You.
Anushi1998 has quit [Ping timeout: 245 seconds]
Anushi1998 has joined #ste||ar
gedaj has quit [Quit: Leaving]
gedaj has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
nanashi55 has quit [Ping timeout: 260 seconds]
nanashi55 has joined #ste||ar
EverYoung has joined #ste||ar
hkaiser has joined #ste||ar
nanashi55 has quit [Ping timeout: 268 seconds]
Anushi1998 has quit [Ping timeout: 265 seconds]
Anushi1998 has joined #ste||ar
EverYoung has quit [Ping timeout: 245 seconds]
nanashi55 has joined #ste||ar
hkaiser has quit [Ping timeout: 248 seconds]
nanashi55 has quit [Ping timeout: 256 seconds]
parsa has quit [Quit: Zzzzzzzzzzzz]
parsa has joined #ste||ar
nanashi55 has joined #ste||ar
parsa has quit [Quit: Zzzzzzzzzzzz]
nanashi55 has quit [Ping timeout: 256 seconds]
nanashi64 has joined #ste||ar
nanashi64 is now known as nanashi55
nanashi55 has quit [Ping timeout: 256 seconds]
Anushi1998 has quit [Ping timeout: 245 seconds]
nanashi55 has joined #ste||ar
Anushi1998 has joined #ste||ar
jaafar has quit [Ping timeout: 260 seconds]
mcopik has quit [Ping timeout: 240 seconds]
gedaj has quit [Remote host closed the connection]
gedaj has joined #ste||ar
mcopik has joined #ste||ar
david_pfander has joined #ste||ar
EverYoung has joined #ste||ar
Anushi1998 has quit [Remote host closed the connection]
Anushi1998 has joined #ste||ar
anushi has joined #ste||ar
Anushi1998 has quit [Read error: Connection reset by peer]
hkaiser has quit [Read error: Connection reset by peer]
hkaiser_ has quit [Quit: bye]
hkaiser has joined #ste||ar
jakub_golinowski has joined #ste||ar
nanashi64 has joined #ste||ar
nanashi55 has quit [Ping timeout: 265 seconds]
nanashi64 is now known as nanashi55
nanashi64 has joined #ste||ar
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
nanashi64 has quit [Ping timeout: 252 seconds]
nanashi55 has quit [Ping timeout: 240 seconds]
jakub_golinowski has quit [Ping timeout: 260 seconds]
jakub_golinowski has joined #ste||ar
jakub_golinowski has quit [Remote host closed the connection]
K-ballo has joined #ste||ar
jakub_golinowski has joined #ste||ar
CaptainRubik has quit [Ping timeout: 260 seconds]
hkaiser has quit [Ping timeout: 268 seconds]
daissgr has joined #ste||ar
hkaiser has joined #ste||ar
<Guest1919>
[hpx] hkaiser closed pull request #3216: Reorder a variadic array to satisfy VS 2017 15.6 (master...fix-vs-15.6-variadic-array) https://git.io/vA7in
hkaiser has quit [Quit: bye]
jakub_golinowski has quit [Quit: Ex-Chat]
jakub_golinowski has joined #ste||ar
V|r has quit [Remote host closed the connection]
gedaj has quit [Remote host closed the connection]
gedaj has joined #ste||ar
K-ballo has quit [Read error: Connection reset by peer]
K-ballo has joined #ste||ar
mcopik has quit [Ping timeout: 240 seconds]
mcopik has joined #ste||ar
jakub_golinowski has quit [Ping timeout: 260 seconds]
FjordPrefect has joined #ste||ar
daissgr has quit [Read error: Connection reset by peer]
aserio has joined #ste||ar
gablab has joined #ste||ar
EverYoung has joined #ste||ar
EverYoung has quit [Ping timeout: 245 seconds]
gedaj has quit [Remote host closed the connection]
gedaj has joined #ste||ar
gedaj has quit [Remote host closed the connection]
gedaj has joined #ste||ar
eschnett has joined #ste||ar
nikunj has quit [Ping timeout: 260 seconds]
david_pfander has quit [Ping timeout: 255 seconds]
david_pfander has joined #ste||ar
parsa has joined #ste||ar
jakub_golinowski has joined #ste||ar
david_pfander has quit [Ping timeout: 268 seconds]
EverYoung has joined #ste||ar
eschnett has quit [Quit: eschnett]
<diehlpk_work>
jakub_golinowski, I would be available now
<diehlpk_work>
Acutally it would be better now, because a meeting today changed
<jakub_golinowski>
ok
<diehlpk_work>
also jbjnr is interested in your questions
<jbjnr>
what have I missed? I've been away and not reading IRC for a bit.
simbergm has joined #ste||ar
<jakub_golinowski>
After reading the guidelines from the e-mails I think I am aware with what materials I should familiarize myslef with in the upcoming days
<jakub_golinowski>
however, as for this guideline:
<jakub_golinowski>
1. The project itself contains a class where different parallelism is implemented. For example for openmp a for loop is parallized with a pragrama. One task would be to check how this can be done with parallel algorithms within hpx.
<diehlpk_work>
jbjnr, jakub_golinowski is interested in the OpenCV project
<jakub_golinowski>
My question would be what is meant by "the project" here
<diehlpk_work>
We are speaking about this class here
<jbjnr>
jakub_golinowski: the task is to replace the openmp implementation in opencv with HPX. This should not be very difficult in principle, if you're familiar with hpx, but the devil is in the details and we'd like to see some working examples of opencv pipelines runningin hpx, with all openmp removed etc
<zao>
Oh joy, my Win10 VM I ran tests in is not updating the display over remote desktop. It's eating all my CPU tho :)
<jbjnr>
gosh - diehlpk_work - is it all in one single place then? I hadn't realized it was so straightforward.
<diehlpk_work>
yes, I did a search and found only things there
<jbjnr>
so then my wish to see Qt integration and thread pools working nicely is not unreasonable
<diehlpk_work>
Ok, it was last year and we should do it again, but most things are done in this file
<jbjnr>
I'm leaving the office in a mo - but I'll send something to the hpx-users mailing list if there's stuff I need to respond to
<diehlpk_work>
Ok good
gedaj has quit [Remote host closed the connection]
<diehlpk_work>
So jakub_golinowski I was thinking that you should investigate this file and understand how openmp is used there
gedaj has joined #ste||ar
<jakub_golinowski>
dielhpk_work: what do you mean by last year?
<diehlpk_work>
I checkout opencv and search for #pragma in all files
<diehlpk_work>
And I only found this one file where a #pragma was used
<diehlpk_work>
The proposal is one year old and things have may changed
jaafar has joined #ste||ar
<diehlpk_work>
I spent some time last year to check what has to be done for this project
<jakub_golinowski>
This might be important information, I will keep that in mind while going over this file
<diehlpk_work>
As far as I understood, most of the parallism is done in this file
<diehlpk_work>
I was thinking that the #pragma could be replaced by a parallel for loop
<diehlpk_work>
I only invest some time and one part of the project would be to find the places in opencv where you have to do changes
<jakub_golinowski>
Ok, I understand that it is crucial to the overall success of the project
<diehlpk_work>
Yes
<diehlpk_work>
I used opencv in a student project, but I am not faimilar with the internals
<jakub_golinowski>
I was also using OpenCV for a project, up till now. I need to dive in the topic a bit more and I will be asking questions whenever in serious doubt. Also if any there are new ideas on the side of mentors - pleas let me know.
<diehlpk_work>
Sure, what about the other bullet points?
<diehlpk_work>
Task #2: Get a good understanding of the HPX threading framework. Make
<diehlpk_work>
sure you appreciate the difference between kernel level threads and
<diehlpk_work>
lightweight HPX threads. Reading from a webcam or other device might
<diehlpk_work>
make low level calls that need to be done on a kernel thread rather than
<diehlpk_work>
an hpx worker/task thread.
<diehlpk_work>
This is also a major key point of the proposal
<jakub_golinowski>
Yes, for this I also wanted to ask a questio. I was going throught the HPX examples and it was pointed out that the OS-thread and HPX-threads are not the same. Is this the same concept here when we use the name kernel-level-threads and lightweight HPX threads?
simbergm has quit [Ping timeout: 260 seconds]
<diehlpk_work>
Yes
<jakub_golinowski>
Ok, so here I am on the right track. Are there more examples on this topic?
<diehlpk_work>
Have you checked or example folder?
<diehlpk_work>
All examples are there
<diehlpk_work>
First step could be do read an image from the file system and apply parallel filters on the image
<diehlpk_work>
After this is working you could add the webcam and use the images from there
<diehlpk_work>
So the Qt demo would be a more advanced example
<jakub_golinowski>
read an image from file - is there an example for it?
<jakub_golinowski>
I see qt folder in examples dir
<diehlpk_work>
Maybe somewhere in the opencv example
<diehlpk_work>
I was thinking use a hpx_main and do following
<diehlpk_work>
1) read an image with opencv from file system
<diehlpk_work>
2) Apply a bunch of filters in parallel there
<diehlpk_work>
3) Save the image to file system
<jakub_golinowski>
ad. 2 -> what exactly in parallel means here? Using current implementation of OpenCV using OpenMP?
<diehlpk_work>
OpenCV with HPX
<diehlpk_work>
This could be your task for the first evaluation
<jakub_golinowski>
"Manually" combining the two in my code, right?
<jakub_golinowski>
as a proof of concept
<jakub_golinowski>
?
<diehlpk_work>
Yes
<diehlpk_work>
You would provide hpx parallel for loops in the class file we discussed
<jakub_golinowski>
Ok, I think it is a very good first step and will most possible difficulties
<diehlpk_work>
And write an example where I can use -t or hpx:threads to specifiy how many cores I like to use
<diehlpk_work>
In the second phase you could start to integrate the webcam and replace image from file system with image from webcam
<jakub_golinowski>
class file - you mean the OpenCV class in file parallel.cpp
<diehlpk_work>
yes
<diehlpk_work>
So second example would be read image from webcam, apply filters in parallel, save image to file ststem
<diehlpk_work>
This could be done in phase 2 of gsoc
<jakub_golinowski>
Ok, this seems clear to me
<diehlpk_work>
Phase three would be to add qt
<diehlpk_work>
Read image from webcam and display it in a gui, apply filter in parallel and show it next to the read image in a gui
<diehlpk_work>
So with each step the complexicty increases and you will use all things you implemented in the previous steps
eschnett has joined #ste||ar
<jakub_golinowski>
Ok, this work outline seems feasible - the key part will take place in the first phase, I think
<diehlpk_work>
I think that the integration of the webcam and qt is more difficult
<diehlpk_work>
But maybe I am wrong
<jakub_golinowski>
ok, I will keep that in mind - why do you think so? Is it because of the hardware access throught OS possible difficulties in case of phase 2?
<diehlpk_work>
I think the synchronization between hpx threadsand kernel thread could be difficult
<diehlpk_work>
So you have to tell hpx that the image is available and pleas apply filters
<diehlpk_work>
And later qt has to be synchronized too
<diehlpk_work>
Task #7: Understand that Qt GUI threads can’t always be run on hpx task
<diehlpk_work>
threads and/or tht Qt guis are not generally thread safe and we may need
<diehlpk_work>
a special thread for GUI updates (or careful use of Qt synchronization),
<diehlpk_work>
so a thread pool dedicated for that might/would be a good idea.
<diehlpk_work>
I have a feeling that the synchronization between webcam, hpx threads, and qt is the difficult part
<jakub_golinowski>
Now I see - as you mentioned in task #2 good understanding of HPX threading framework is the key here
<jakub_golinowski>
and in the next phases we keep adding more problems of this nature
<diehlpk_work>
Maybe I am completely wrong and this is the easiest thing to do
<diehlpk_work>
Yes
<jakub_golinowski>
I am now really motivated to work on this project - the scope is well defined, there are interesting challenges and the outcome is pretty useful
<diehlpk_work>
Cool
<diehlpk_work>
Please look into the details and ask us as many questions you can
<diehlpk_work>
jbjnr, Will be very helpful for the different kind of threads
<diehlpk_work>
For the first example we can just adapt any example from opencv
<jakub_golinowski>
Ok. So in the HPX documentation there are 5 examples that are extensivly described. However, I noticed that in examples folder there are way more examples - are they also described somewhere?
<diehlpk_work>
No, only in the comments in the code
<diehlpk_work>
The examples with parallel for loops and qt are maybe interesting for you
<diehlpk_work>
Implemeting a parallel matrix matrix multiplication with parallel for loops could be a good task for you
<jakub_golinowski>
so this is not yet done?
<diehlpk_work>
I was thinking that you do this, to get faimilar with hpx and the concept of parallel algorithms
<jakub_golinowski>
Ok, I am up for it
<diehlpk_work>
Just allocate two matrices with n time n, fill them with random values, and multiply them ny using parallel for loops
<jakub_golinowski>
so one more quick question - which of the existing examples is showing principles of parallel loops?
<zao>
Ooh, second node is the one with the abort this time.
<zao>
I have no semblance of debugger on this VM tho :(
<hkaiser>
zao: it says state == pre_main, but th eapp is doen running - strange
<hkaiser>
that's another one of those simbergm has already fixed, apparently
<hkaiser>
the stack backtrace doesn't look right either - the same function called more than once
<zao>
This is 8d828c1929be + the vs15.6 patch.
<hkaiser>
k
<nikunj>
@hkaiser: why did we use unique_lock at line 152 instead of standard lock_guard? link:https://github.com/STEllAR-GROUP/hpx/blob/master/examples/quickstart/init_globally.cpp
<nikunj>
@hkaiser: it is also used at line 104
<hkaiser>
the condition_variable::wait expects a unique_lock as it unlocks the mutex using it
<nikunj>
@hkaiser: now I get it, also at line 134, you write "Here other HPX specific functionality could be invoked..". What are these functionalities?
<hkaiser>
zao: the strange thing is that it has already printed its output
<hkaiser>
so might be some race during startup
<nikunj>
@hkaiser: Also, .init_array is initialized before a struct initialization, then why was the init_globally giving the runtime error? The error was resolved once it was intialized even before at .preinit_array stage
<hkaiser>
nikunj: I don't know
<hkaiser>
the docs might be wrong
<zao>
I'll leave this as it is until simberg comes around, not much to do with the VM as it is now.
<zao>
(1900 runs to trigger this time)
<nikunj>
@hkaiser: I wrote a program to check the initialization sequence, and I found that .init_array is indeed initialized before struct initialization.
<hkaiser>
this code could be used as a fallback if preinit starts failing for any reason
<hkaiser>
(this code needs to be changed to use .preinit as well, now)
<hkaiser>
nikunj: I don't know what's wrong, but if .preinit works, let's go with it
<nikunj>
@hkaiser: yes it seems to work perfectly fine.
<hkaiser>
good
<nikunj>
@hkaiser: I'm trying to create a binary search example for the init_globally case to check for initialization sequences. Should it be fine or should I work on creating another example?
<hkaiser>
nikunj: that fallback using the /proc fs can be added anyways
<nikunj>
@hkaiser: Yes, I took think that adding that as fallback will make the code better.
<hkaiser>
nikunj: could you commen ton #3211, please - this way we can merge it
<nikunj>
@hkaiser: I've already added a review stating that the code works well now.
<nikunj>
@hkaiser: should I add a comment as well?
<hkaiser>
ahh, ok - that's sufficient, then
<hkaiser>
thanks
<nikunj>
@hkaiser: should I work on the above example or try implementing some other example?
<zao>
(fun fact, FreeBSD doesn't have proc mounted by default :P)
<zao>
(not that anyone cares about it)
<hkaiser>
zao: sure, it's a nice fallback solution for linux, however
<hkaiser>
nikunj: as you like it
<hkaiser>
using the existing example as a basis is probably a good thing (tm)
<nikunj>
@hkaiser: Oh, in that case which example should I convert?
simbergm has joined #ste||ar
<hkaiser>
zao: there comes simbergm
<hkaiser>
nikunj: so you din't mean using init_globally?
<hkaiser>
nikunj: in general, I'm fine with anything, I'd like to leave that decision to you
<zao>
simbergm: So I got a nice little crash in locality{1} now in my VM. Claims to be in pre_main state, but is busy shutting down, aborting on that num_thread < states_.size() in scheduler_base.
<nikunj>
@hkaiser: I meant that I will create another directory ( probably named as global initalization ) where I will create a header file that containing the initialization code from init_globally and then converting one of the example to use init_globally instead.
<nikunj>
@hkaiser: I will then check for initialization sequencing errors that comes up and then fix them in the file accordingly.
<nikunj>
@hkaiser: One last thing, what functions do you mean when you write "Here other HPX specific functionality could be invoked..." in line 134 of init_globally?
<simbergm>
hey zao, was reading the backlog and your trace, thanks for checking it
<simbergm>
seems to have happened once on rostam as well (at least looks similar)
<hkaiser>
looks like a race during startup
<simbergm>
I'll look into it
<hkaiser>
simbergm: thanks
eschnett has quit [Quit: eschnett]
hkaiser has quit [Quit: bye]
jakub_golinowski has quit [Quit: Ex-Chat]
<simbergm>
zao: doesn't make much sense to me, it looks like it shouldn't be possible to happen but obviously I'm missing something
<zao>
I don't know what get_os_thread_count returned. Also, I'm building with "runtime" disabled, is that related at all?
<zao>
(nicked my settings straight off appveyor)
<simbergm>
and this was 2 localities and 2 threads each?
<zao>
Yes.
<zao>
The VM has 6 cores.
<simbergm>
runtime disabled? probably not related
<zao>
rp->cfg_->pu_offset_ is 0xff..recurring
<zao>
Most other params seems fine.
<zao>
Note that this is three commits behind master, if you fixed something interesting recently.
elfring has quit [Quit: Konversation terminated!]
eschnett has joined #ste||ar
<aserio>
diehlpk_work: do you know what the last Clang+Boost+CUDA versions that worked for HPX.Compute?
<diehlpk_work>
For cuda I assume >=8
<diehlpk_work>
Clang I am not sure
<aserio>
Do you know if Martin was working on this?
<diehlpk_work>
Yes
<aserio>
Thanks!
daissgr has joined #ste||ar
<aserio>
daissgr: mcopick was working on that last
<aserio>
you might be able to see some evidence of this in some pull requests to HPX.Compute
<diehlpk_work>
daissgr, What kind of issues di you have?
<simbergm>
zao: thanks again for testing! I'll try to reproduce it because I can't really figure out what's going on
<daissgr>
I was trying to build hpx with boost 1.65 and the most recent clang (from master). I can build hpx itself but as soon as I build the "make examples.compute.cuda" example, I get errors boost errors like "exception specification of overriding function is more lax than base version"
<daissgr>
Should I try an older clang version?
<zao>
Kind of lost as to when things really happen, as I don't have any idea of how the program flow goes.
<zao>
This one is nice in that it's the first time that I get an assert in the second locality, otherwise it's just an access violation in the second locality that triggers an assert in the first socket.
<K-ballo>
daissgr: boost::system_error related?
daissgr1 has joined #ste||ar
<daissgr>
yes! at least some of the errors are
<daissgr>
the others seems to be related to boost container (call to implicitly-deleted copy constructor)
<K-ballo>
could you put the errors somewhere and paste the link here?