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
<M-ms>
hey, just wanted to let you know that your webcam example runs nicely now for me as well (it was the location of my build folder and missing gtk libraries)
<M-ms>
will try to run your test script tonight
<M-ms>
and I think we can skip our call today unless you have some pressing questions
<github>
[hpx] msimberg opened pull request #3372: WIP: Fix some more c++11 build problems (master...fix-c++11) https://git.io/fNfws
<zao>
`Resolving deltas: 18% (148849/820917)`
<zao>
Git and Lustre don't mix :(
<nikunj1997>
:/
<zao>
Lunch!
<jakub_golinowski>
M-ms, great that the webcam example runs properly! I also think that the call is no necessary today, since I still have tasks pending from the call on Friday
<zao>
Bah, built with the wrong toolchain.
<nikunj1997>
which one did you use?
<zao>
Was going to use our intel/2018a toolchain but accidentally forgot to set the environment, so it found the GCC 6.4.0 toolchain it's built on.
<zao>
Interestingly enough, phylanx with the same modules finds the system GCC 5.4.0.
<nikunj1997>
would it matter?
<zao>
Well, mismatching HPX and phylanx's compilers and runtimes would be bad from my side.
anushi has joined #ste||ar
nikunj97 has joined #ste||ar
nikunj1997 has quit [Ping timeout: 244 seconds]
<zao>
Oh joy, HPX doesn't build with Intel...
<nikunj97>
what does it say?
<zao>
Same old exception_ptr crud. I forget how I solved it last time :(
<nikunj97>
oh
<zao>
Rebuilding with foss/2017b instead.
<nikunj97>
ok
<zao>
nikunj97: Eugh, I forgot how silly their HPX_DIR thing was, needing the full path into lib/cmake/HPX.
<zao>
CMake Error at /pfs/software/eb/amd64_ubuntu1604_bdw/software/Compiler/GCCcore/6.4.0/CMake/3.10.2/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
<zao>
Could NOT find Threads (missing: Threads_FOUND)
<zao>
Don't make me read documentation :)
<zao>
Blaze, eugh.
<nikunj97>
try removing cmake cache and see if it works
<nikunj97>
I faced the same situation yesterday. That seemed to do it for me
<zao>
No change.
<nikunj97>
oh
<nikunj97>
it is related to blaze
<nikunj97>
zao: do you have blaze installed?
<zao>
No. I don't have anything that's not needed for HPX.
<zao>
Nor is there any documentation for this Phylanx thing.
<nikunj97>
oh that's why
<zao>
As bad as it was last time I was tricked into building it... <_<
<zao>
I'm at work, I can't install random system packages.
<nikunj97>
oh, don't then. Try running it later
heller___ has joined #ste||ar
heller has quit [Read error: Connection reset by peer]
<zao>
So this is using what, Python 2 or 3?
<nikunj97>
I'm not sure
<nikunj97>
I did not checkout the code
<jakub_golinowski>
M-ms, FYI the there is a response to the PR from OpenCV
<zao>
Might be both, time will tell.
hkaiser has joined #ste||ar
jakub_golinowski has quit [Quit: Ex-Chat]
jakub_golinowski has joined #ste||ar
K-ballo has joined #ste||ar
<nikunj97>
hkaiser: yt?
<hkaiser>
here
<nikunj97>
So I added a way to propagate the linker flags
<nikunj97>
This way we do not need to worry about the hpx application
<hkaiser>
nod, I have added two small comments
<nikunj97>
If HPX was build using dynamic hpx main then things will work similar to my implementation else things will revert back to original one
<nikunj97>
yes, I've updated it and added another commit
Anushi1998 has joined #ste||ar
<hkaiser>
nice, thanks
<nikunj97>
hkaiser: again sorry for not noticing something like this. I should have guessed this behavior
<hkaiser>
no worries
<hkaiser>
your work produces nice results!
<nikunj97>
thank you :)
<zao>
nikunj97: Do you have any specific HPX flag one should use when building it?
<zao>
(didn't read any documentation, if it exists :P )
<nikunj97>
no, it defaults to on
<nikunj97>
so you can simply build like you used to
<nikunj97>
and things will work out of the box
<hkaiser>
nikunj97: would you mind updating your docs to reflect your recent changes?
anushi has quit [Ping timeout: 240 seconds]
<nikunj97>
hkaiser: I think the one for hpx_main is enough. If you want me to add docs specific to this hpx aplication and the flags and implementation stuff, then I can add more
<hkaiser>
I'll read it again
<zao>
nikunj97: I have reason to believe that your wrapping of main may interfere with the CMake tests of phylanx.
<hkaiser>
zao: they do
<nikunj97>
ok, I can always add to the docs. But I felt adding all the implementation for user will bloat our doc. This is because the user is more concerned about using hpx functionality from main instead of how we bring that functionality to him in that section.
<jakub_golinowski>
M-ms, well I mean it seems they are not listening very carefully and are focuesd mostly no having to include anything to all possible apps
<hkaiser>
M-ms: all pycicle links go to a 404
<zao>
(rather straightforward, trickiest bit was -DPYBIND11_TEST=OFF because we don't have pytest)
<M-ms>
we really want the user to be including hpx_main (or hpx_init or hpx_start...) so that they are free to choose how to initialize hpx
<nikunj97>
hkaiser: HPX provides with the include directory and library directory to link with, right?
<hkaiser>
nikunj97: it exports targets that have the include dir etc. attached, yes
<nikunj97>
does it export any linker/cxx flags?
<hkaiser>
not sure
<nikunj97>
adding my linker flags to CMAKE_EXE_LINKER_FLAGS will break things if cxx test files are ran after it
<nikunj97>
it somehow did not do it my laptop
<nikunj97>
but it is apparent from zao's result
<hkaiser>
k
* zao
implements fika
<jbjnr>
M-ms: jakub_golinowski it seems that Sam and Ben must be working for OpenCV now. We will not use it if we have to add a #include to our code!
<hkaiser>
jbjnr: who are Sam and Ben?
<jbjnr>
in other projects that do this kind of thing. I have modified the CMake in such a way that when OPENCV_WITH_HPX is enabled, an extra include is pulled in to the library such that the user does not see it. However, with OpenCV this would probably not work because we cannot make int main() run on an hpx thread since many things will use blocking OS calls
nikunj1997 has joined #ste||ar
<hkaiser>
we can use the global object trick
<jbjnr>
hkaiser: Sam and Ben are the CSCS guys who refuse to use HPX because it introduces dependencies they don't want, so they are writing their own task based runtime scheduler etc.
mcopik has joined #ste||ar
<hkaiser>
jbjnr: ahh! makes perfect sense! I like those guys. ;-)
<jbjnr>
You don't.
<hkaiser>
heh
<hkaiser>
idiots
<jbjnr>
I used to. But not any more.
<jbjnr>
No. They laim that their use case is just too simple to be worth a full HPX and they just need a few async cals here and there.
<hkaiser>
shrug, we should save our energy to work with those who are interested in working with us
<jbjnr>
^claim
<hkaiser>
jbjnr: yah sure, the usual nonesense
<jbjnr>
hkaiser: didn't you notice yet? nobody is interested in working with us
<hkaiser>
jbjnr: not true
<hkaiser>
stop being depressed
<hkaiser>
everybody loves you!
<jbjnr>
<sigh>
nikunj97 has quit [Ping timeout: 256 seconds]
<jakub_golinowski>
jbjnr, about the OpenCV: I will write you a howto for the mandelbrot benchmark in a minute
<jbjnr>
thanks jakub_golinowski
<jbjnr>
M-ms: thanks. merged one pycicle PR and ... hkaiser I've restarted pycicle, so links should be fixed.
<jakub_golinowski>
M-ms, jbjnr - I think apart from making the OpenCV ppl understand what hpx_main.hpp is doing and why we want the backend assuming runtime running I should also boost the start-stop backend to the suspend-resume backend with global object and at the same time tune the perf
<jbjnr>
jakub_golinowski: would it help if I comment on the PR?
<jakub_golinowski>
Then they see suspend-resume working OK and maybe will be more open to listen why we STILL want the backend assuming runtime started
<M-ms>
jbjnr: thanks for merging
<jbjnr>
not sure I understand this comment " I should also boost the start-stop backend to the suspend-resume backend with global object and at the same time tune the perf"
<M-ms>
a user-started runtime is really the main use-case for the hpx backend
<jakub_golinowski>
jbjnr, my understanding is that OpenCV ppl are a little bit not willing to understand why we want the user-started runtime backend versio
<jakub_golinowski>
and now after two posts in which I try to explain it they do not answer that at all but only ask about performance
<jakub_golinowski>
So I assume that the only wayt to make them listen now is to show them we can address their problems
<M-ms>
jakub_golinowski: although interesting I wouldn't focus too much on it because it will always be a secondary use case (and they have their existing backends for completely hiding the backend from the user)
<jbjnr>
correct.
<jakub_golinowski>
M-ms, jbjnr: hmmm
<jakub_golinowski>
So maybe better to start with investigating why user-started hpx is not as good as openmp and tbb
<jbjnr>
yes
<jakub_golinowski>
ok, so let me relaunch the mandelbrot benchmark and write the howto
<jbjnr>
thanks
<M-ms>
jakub_golinowski: it might also be that once they understand what is happening they'll be more likely to accept it
<nikunj1997>
Now I'm getting the pthread error as well :/
<nikunj1997>
if you however put phylanx_setup_hpx after other setups, things run smoothly
<zao>
jbjnr: I tried using Windows's built-in thread pools the other day. Found out the fun way that if you allocate up to a gigabyte per task, having 80 concurrent tasks is not a good thing :D ^^
<zao>
Gets past that bit, failing miserably at finding my Blaze right now.
<nikunj1997>
do you have blaze installed?
<zao>
Yes, and it doesn't care if I specify -Dblaze_DIR=$EBROOTBLAZE
<zao>
I guess I need to point down into it's share.
<zao>
Never really understood software that requires the cmake directory, instead of just pointing out a root.
<nikunj1997>
I have blaze installed in /usr/local (I didn't care less building it again)
<nikunj1997>
zao: :D
<jakub_golinowski>
jbjnr, yt?
<jbjnr>
zao yes. 80GB. very entertaining. try more!
<jbjnr>
jakub_golinowski: here
<zao>
jbjnr: Would've been fine at work, but it was on my poor 32G machine at home :D
<jakub_golinowski>
jbjnr, I thik I am finished with the how to
Anushi1998 has quit [Ping timeout: 240 seconds]
<jakub_golinowski>
I also pushed the changes to the repo
<nikunj1997>
zao: what are the specs of your test bench?
<zao>
Which one?
<nikunj1997>
the best one :p
<zao>
The one with the debian container is a Ryzen 1700 with 16G of memory.
<nikunj1997>
nice!
<zao>
Machine at work is a boring login node with a Broadwell and 128G of memory, or a Skylake-SP with 192G.
Anushi1998 has joined #ste||ar
<zao>
Anyway, managed to configure phylanx eventually, and it's building.
<zao>
(not done)
<nikunj1997>
good to hear :)
<nikunj1997>
I hope it works
<zao>
Failure!
<nikunj1997>
oh :/
<zao>
`/hpc2n/eb/software/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.1/pybind11/2.2.3-Python-3.6.3/include/pybind11/detail/common.h:111:20: fatal error: Python.h: No such file or directory`
<nikunj1997>
lol
<nikunj1997>
do you have pybind installed?
<zao>
Yes, otherwise I wouldn't have gotten this far.
<jbjnr>
jakub_golinowski: which branch in your opencv clone should I use? jakub/hpx_backend_stable or master?
<zao>
I do wonder why I don't have Python loaded tho.
<zao>
Ah, I suck :P
<nikunj1997>
this error is not linked with my implementation (as far as I see it)
<zao>
Indeed.
<zao>
(I had Python as a build dependency, not a proper dependency)
<jbjnr>
or just hpx_backend (that's the one in the R, so I will try it first)
<jbjnr>
^PR
<jakub_golinowski>
jbjnr, use hpx_backend_stable
<jakub_golinowski>
jbjnr, actually I also have a script for building opencv with all different backends
<jakub_golinowski>
jbjnr, you can use it to build all the backends in the "schme" that is accepted by the run_opencv_mandelbrot script
<jbjnr>
ok. thanks. I will first try hpx backend alone then once I am sure it works, try others etc
Anushi1998 has quit [Ping timeout: 240 seconds]
<jbjnr>
but probably not tonight. might take me a day or three
Anushi1998 has joined #ste||ar
<zao>
nikunj1997: Builds fine.
<nikunj1997>
:)
<zao>
Well, there might be warnings, but there's so much noise I can't tell.
<zao>
Testbed all fails, so that's something.
<nikunj1997>
try tests
<nikunj1997>
does all the tests fail?
<zao>
Ah, it had apparently not built all of them.
<zao>
Have I ever mentioned how much I hate CMake builds that have optional targets and poor dependencies?
<nikunj1997>
noted
<jbjnr>
Don't hold yourself back zao - feel free to vent
<zao>
CMake, the least horrible build system generator.
<zao>
In all meanings of the phrase :P
anushi has quit [Read error: Connection reset by peer]
<zao>
FFS. Why does it do this when I explicitly specify an install path
<zao>
Goddammit.
<zao>
How hecking hard can it be to make builds that don't put shit in places it doesn't belong?
<zao>
(everyone, not just this god-forgotten package)
<zao>
nikunj1997: Heh, HPX master fails harder than you.
<zao>
nikunj1997: For the Python tests, proper HPX fails the same way.
<nikunj1997>
HPX master latest commit?
<zao>
For other tests:
<zao>
terminate called after throwing an instance of 'std::invalid_argument'
<zao>
what(): hpx::resource::get_partitioner() can be called only after the resource partitioner has been allowed to parse the command line options.
<zao>
Base command is "/pfs/nobackup/home/l/lars/stellar/build-stellar-nik-phylanx-debug/bin/primitive_counter_test --hpx:threads=1 --hpx:localities=1"
<nikunj97>
hkaiser: does phylanx has it's own linker flag which it uses to link files?
<hkaiser>
nikunj97: inspect is tricky, for simplicity it links with hpx without ever needing hpx at all ;-)
<hkaiser>
phylanx has no special linker flags
<jakub_golinowski>
M-ms, I restructured my opencv_hpx_backend repo to allow for single-command build by introducing the root-level CMakeLists. For now it is in the branch: https://github.com/Jakub-Golinowski/opencv_hpx_backend/tree/cmake_tree in order not to confuse John when he wants to reproduce the mandelbrot benchmark. However I already tested it in reduce parameter scope on my mahcine and it worked.
<jakub_golinowski>
The cmake rework was not that trivial because I also added the root-level data directory which is properly passed for both cases when there is a whole build and when there are individual builds of single apps. Also I pulled out the params BACKEND_NON_HPX and BACKEND_STARTSTOP to the top CMakeLists and apply them to all examples uniformly. However 2 examples cannot work against the HPX_STARTSTOP backend therefore I just do
<jakub_golinowski>
not build them when the HPX_STARTSTOP option is set to ON. I noted some questions I had under way and did not manage to resolve to the questions gdoc. If there are any bad practices in the cmake structure I proposed pleas let me know.
<nikunj97>
hkaiser: if it links with hpx then that error should not have come
<nikunj97>
That error occurs when the linker flag is given but library is not linked
<hkaiser>
nikunj97: I'm seeing the same problem with my phylanx branch (that is not using your phylanx fix)
<hkaiser>
my branch did work with the previous hpx master, though