00:18
jaafar has quit [Ping timeout: 246 seconds]
00:36
jbjnr__ has joined #ste||ar
00:40
jbjnr_ has quit [Ping timeout: 240 seconds]
00:53
akheir1 has joined #ste||ar
00:55
wash[m]_ has joined #ste||ar
01:02
wash[m] has quit [*.net *.split]
01:02
akheir has quit [*.net *.split]
01:04
diehlpk_work has quit [*.net *.split]
01:04
wash[m]_ is now known as wash[m]
01:32
jaafar has joined #ste||ar
01:36
jaafar has quit [Client Quit]
01:37
jaafar has joined #ste||ar
01:48
jaafar has quit [Remote host closed the connection]
01:49
jaafar has joined #ste||ar
02:17
K-ballo has quit [Quit: K-ballo]
03:21
hkaiser has quit [Quit: bye]
03:37
weilewei09 has joined #ste||ar
03:44
<
weilewei09 >
./bin/inspect --all --output=./hpx_inspect_report.html /hpx/source
03:44
<
weilewei09 >
Exited with code 1" Does anyone have an idea about this? Thanks for your attention!
03:46
jaafar has quit [Ping timeout: 268 seconds]
04:42
jaafar has joined #ste||ar
04:44
jaafar has quit [Client Quit]
04:45
jaafar has joined #ste||ar
05:53
<
jbjnr__ >
weilewei09: no idea. looks like a fail of the test runner in some way. Probably you should ignore it for now. if you want to double check, then build the inspect tool locally (cmake -DHPX_WITH_TOOLS=ON . && make -j4 inspect) then run bin/inspect /path/to/hpx -a -o inspect.html
09:27
<
simbergm >
if you're logged in to circleci you should see an "artifacts" tab which usually contains error reports if there was an error (and that's the case now)
09:28
<
simbergm >
it's complaining about you using a "C-style assert macro"
09:28
<
simbergm >
you should instead be using HPX_ASSERT
11:32
K-ballo has joined #ste||ar
11:38
david_pfander has joined #ste||ar
12:42
david_pfander has quit [Ping timeout: 264 seconds]
12:44
hkaiser has joined #ste||ar
12:58
eschnett has quit [Quit: eschnett]
13:49
diehlpk has joined #ste||ar
13:55
eschnett has joined #ste||ar
14:03
aserio has joined #ste||ar
14:37
jbjnr_ has joined #ste||ar
14:40
jbjnr__ has quit [Ping timeout: 240 seconds]
14:41
<
diehlpk >
hkaiser, We need to find a better title for the hpxmp 2 paper
14:45
<
hkaiser >
diehlpk: ok
14:46
<
hkaiser >
diehlpk: 'Moving into the future - ensuring deep compatibility between OpenMP and AMTs'
14:50
david_pfander has joined #ste||ar
14:54
daissgr has joined #ste||ar
14:59
<
aserio >
hkaiser: Operation Bell Meeting?
14:59
<
hkaiser >
aserio: could you paste the link for the meeting here, please?
15:00
<
aserio >
hkaiser: ^^
15:01
diehlpk has quit [Ping timeout: 268 seconds]
15:33
nikunj has joined #ste||ar
15:48
jpenuchot has joined #ste||ar
16:13
daissgr has quit [Ping timeout: 252 seconds]
16:22
diehlpk has joined #ste||ar
16:24
<
diehlpk >
hkaiser, I think we should go with this title. aserio Any comments?
16:24
<
hkaiser >
its at least flashy, if nothing else
16:30
<
hkaiser >
diehlpk: I have added the hpx section to the paper, pls let me know if you need more
16:39
diehlpk has quit [Ping timeout: 252 seconds]
16:53
diehlpk has joined #ste||ar
16:55
<
diehlpk >
hkaiser, Thanks, looks good to me
16:56
<
diehlpk >
I will read the paper on Tuesday again and try to make the introduction more related to the current results
17:03
aserio has quit [Ping timeout: 268 seconds]
17:20
diehlpk has quit [Ping timeout: 264 seconds]
17:27
aserio has joined #ste||ar
17:28
<
hkaiser >
simbergm: yt?
17:29
<
simbergm >
hkaiser: yeah
17:29
<
hkaiser >
simbergm: could you please explain to me under what circumstances the latch was racey?
17:29
<
hkaiser >
I can't figure it out
17:31
<
simbergm >
did the commit message make any sense?
17:31
<
hkaiser >
not really :/
17:31
<
hkaiser >
in the parallel algorithms we have to different types of threads touching on the latch
17:31
<
simbergm >
ok, I'll try again :P
17:32
<
hkaiser >
the main thread that will eventually call wait and all the others that call count-down (eventually one will call notify_all)
17:32
<
hkaiser >
that notify_all wakes up the main thread if its sitting in the CV
17:33
<
hkaiser >
so where is the race
17:33
<
simbergm >
note: race might not be the correct term here
17:34
<
simbergm >
basically wait can return before the last count_down calls notify_all
17:34
weilewei09_ has joined #ste||ar
17:34
<
hkaiser >
how's that?
17:34
<
simbergm >
1. count_down decrements the counter to zero outside the lock
17:34
<
hkaiser >
how can wait return before the counter reaches zero?
17:34
weilewei09_ has quit [Client Quit]
17:35
<
simbergm >
at the same time (just after) wait checks the counter and sees that it's zero and decides not to wait_all
17:35
<
simbergm >
and after that count_down continues to the lock and calls notify_all
17:35
<
hkaiser >
ok, now I see it
17:35
<
simbergm >
but by then wait has already returned
17:36
<
hkaiser >
thanks, makes sense now
17:36
<
simbergm >
another (I think incorrect) way of fixing it would be to again make sure that each thread keeps the latch alive
17:37
<
hkaiser >
or call count_down_and_wait on the main thread and use N+1 as the counter value
17:38
<
hkaiser >
but you're right, this is a problem in our implementation - thanks for figuring that out
17:38
<
weilewei09 >
@simbergm @jbjnr__ thanks! I think that is the problem, I will check it and get back to you later
17:38
<
simbergm >
yeah, but is it any better than fixing count_down?
17:39
<
hkaiser >
simbergm: no, we need to fix count_down anyways
17:39
<
hkaiser >
simbergm: that flag of yours needs to be set back to false inside reset(), I think
17:40
<
simbergm >
I can't really think of a way to avoid the lock in at least some place :/
17:40
<
simbergm >
ah, good catch
17:40
<
simbergm >
I forgot that it can be reset
17:40
<
hkaiser >
simbergm: that also allows to change the assert in reset, which now can check for isnotified == true
17:40
<
simbergm >
weilewei09: good! let us know if you have any other problems
17:41
<
simbergm >
hkaiser: I guess calling reset just after constructing is illegal (it is pointless)?
17:42
<
hkaiser >
we can make it illegal ;-)
17:42
<
simbergm >
oh wait, it is already illegal :)
17:43
<
hkaiser >
yah, the counter has to be zero, currently
17:44
<
hkaiser >
this is really mostly to make sure nobody resets things in the middle of a sync operation but only after all threads have left the latch
17:44
<
simbergm >
sure, it definitely makes sense
17:52
<
hkaiser >
simbergm: we could also count down the counter only after notify_all has returned
17:53
<
hkaiser >
not sure...
17:53
<
simbergm >
I thought about that and decided against it but I've already forgotten why
17:54
<
simbergm >
ah, it gets messy
17:54
<
simbergm >
and doesn't help in the end
17:54
<
simbergm >
we need to check if counter_ == n
17:54
<
simbergm >
which might be false first but by the time we get to decrement it it might already be true
17:55
<
simbergm >
I couldn't get it to work
17:55
<
hkaiser >
darn atmoics
17:56
<
simbergm >
techically I'd need to lock in reset if I want to set notified_ = false, no? because it's a plain bool
17:56
<
simbergm >
making it atomic is maybe not the end of the world
17:57
<
hkaiser >
grabbing the lock in reset is not the end of the world either
17:57
<
hkaiser >
it's called infrequently
17:57
<
simbergm >
good point
17:57
<
simbergm >
that sounds better
17:58
<
simbergm >
it shouldn't really be conteded either unless it's called in the wrong place
20:09
khuck has joined #ste||ar
20:09
<
khuck >
parsa: did you add the "pp" stuff to hpx?
20:33
<
hkaiser >
khuck: that was heller
20:33
<
hkaiser >
khuck: anything I can help with?
20:35
<
hkaiser >
khuck I think I know what's wrong
20:36
<
hkaiser >
could it be that apex misses a include directory path (for some reason)?
20:36
<
hkaiser >
we might have forgotten to export that
20:36
aserio has quit [Ping timeout: 246 seconds]
20:37
<
hkaiser >
khuck: I'll have a look
20:56
<
khuck >
I've added ${HPX.pp_SOURCE_DIR}/include to the APEX CMakeLists.txt file
20:56
<
khuck >
that seems to have done the trick.
20:56
<
khuck >
I don't explicitly add the HPX include paths, so I don't know how those get added.
21:05
aserio has joined #ste||ar
21:09
aserio has quit [Client Quit]
21:13
hkaiser has quit [Read error: Connection reset by peer]
21:13
hkaiser has joined #ste||ar
21:13
<
hkaiser >
khuck: ok, I checked
21:14
<
hkaiser >
khuck: the build system should create links inside of <build_dir>/include that refer to the correct directories
21:14
<
hkaiser >
<build_dir>/include/hpx/ that is
21:15
<
hkaiser >
it should also add <src_root>/libs/pp/include to the include search path
21:16
<
khuck >
it should, or it does?
21:16
<
khuck >
because from what I can see, it doesn't
21:16
<
hkaiser >
it does for me
21:16
<
khuck >
for the apex directory?
21:16
<
hkaiser >
khuck: in any case pls report this as a ticket, if nothing happens (heller is mostly MIA) I'll revert that change to HPX tomorrow
21:23
<
hkaiser >
khuck: who is generating the include path (-I directives) for compiling APEX?
21:23
<
hkaiser >
khuck: is that some manual setup?
21:24
<
khuck >
there's a apex/src/apex/CMakeLists.hpx file that is used
21:24
<
khuck >
I tried adding ${HPX.pp_SOURCE_DIR}/include explicitly, and that worked once, but not again
21:25
<
hkaiser >
khuck: can you import HPX as a cmake target? that should take care of things
21:25
<
khuck >
how would I do that?
21:26
<
hkaiser >
find_package(HPX) add_target_directory(APEX_target HPX) add_target_link_library(APEX_target HPX) or somesuch, need to have a look
21:30
<
hkaiser >
the HPX target name is lower case hpx (not upp case as shown above)
21:32
<
hkaiser >
khuck: calling hpx_setup_target(APEX-target) should do the trick as well
21:33
<
hkaiser >
khuck: I have to admit I lost track of how to do this kind of thing after recent changes :/
21:37
<
khuck >
no, that gave me an error:
21:37
<
khuck >
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
21:37
<
khuck >
"apex" of type STATIC_LIBRARY
21:37
<
khuck >
depends on "hpx" (weak)
21:37
<
khuck >
"hpx" of type SHARED_LIBRARY
21:37
<
khuck >
depends on "apex" (weak)
21:37
<
khuck >
At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
21:38
<
hkaiser >
we link hpx against APEX
21:38
<
hkaiser >
forgot about that
21:39
<
hkaiser >
then we should add the include directories only, not the libraries, setup_target does both
21:40
<
hkaiser >
try adding a target_include_directories(apex, hpx) instead of the setup_target
21:40
<
hkaiser >
(no comma betwee apex and hpx)
21:40
<
hkaiser >
target_include_directories(apex hpx)
21:48
<
khuck >
hkaiser: another error
21:48
<
khuck >
CMake Error at apex/src/apex/CMakeLists.hpx:357 (target_include_directories):
21:48
<
khuck >
target_include_directories called with invalid arguments
21:49
<
hkaiser >
the hpx target might not have been defined yet
21:52
<
khuck >
yes, that was the fix I did an hour ago, it didn't work
21:52
<
khuck >
I haven't had to explicitly set an HPX include path before
21:53
<
hkaiser >
khuck: those are probably inherited from the 'parent' directory
21:53
<
hkaiser >
let me see
21:57
<
hkaiser >
and remove the target_include_directories from above
22:09
<
khuck >
no, that didn't work either
22:12
<
hkaiser >
khuck: could you paste the generated command line, pls?
22:13
<
khuck >
you mean the "make VERBOSE=1" output?
22:13
<
hkaiser >
for that file
22:14
<
khuck >
cd /home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug/apex/src/apex && /packages/gcc/7.1/bin/g++ -DAPEX_HAVE_ACTIVEHARMONY -DAPEX_HAVE_HPX_CONFIG -DAPEX_HAVE_OTF2 -DAPEX_HAVE_PAPI -DAPEX_HAVE_POWERCAP_POWER -DAPEX_HAVE_PROC -DBOOST_ALL_NO_LIB -DDEBUG -DHPX_COROUTINE_EXPORTS -DHPX_EXPORTS -DHPX_LIBRARY_EXPORTS -D_GNU_SOURCE -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx -isystem /usr
22:14
<
khuck >
/local/packages/boost/1.65.0-gcc7/include -I/home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/apex -I/home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug/apex/src/apex -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/contrib -I/usr/local/packages/papi/papi-knl/5.5.0/include -I/usr/
22:14
<
khuck >
local/packages/activeharmony/4.6.0-gcc/include -I/usr/local/packages/otf2-2.1/include -fPIC -g -fPIC -std=c++17 -o CMakeFiles/apex.dir/apex.cpp.o -c /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/apex/apex.cpp
22:18
<
hkaiser >
khuck: the former line 1817 (the one you moved), could you change it to include_directories("${CMAKE_BINARY_DIR}/include"), please?
22:18
<
hkaiser >
this should still come before apex is configured, i.e. before line 1622 or so
22:20
<
khuck >
I don't think that will help, will it? The cat.hpp file is in libs/pp/include, in the source tree
22:21
<
khuck >
hpx/libs/pp/include/hpx/pp/cat.hpp
22:21
<
hkaiser >
khuck: that should help
22:22
<
hkaiser >
as I said, the build system creates links to the directories in libs located under <build_dir>include
22:24
<
khuck >
In file included from /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/hpx/config.hpp:17:0,
22:24
<
khuck >
from /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/src/hpx_wrap.cpp:6:
22:24
<
khuck >
/home/users/khuck/src/phylanx/tools/buildbot/src/hpx/hpx/config/attributes.hpp:9:10: fatal error: hpx/config/defines.hpp: No such file or directory
22:24
<
khuck >
#include <hpx/config/defines.hpp>
22:24
<
hkaiser >
progress ;-)
22:24
<
khuck >
^~~~~~~~~~~~~~~~~~~~~~~~
22:24
<
khuck >
compilation terminated.
22:24
<
hkaiser >
ok, so it needs both directories
22:24
<
hkaiser >
the old one and the changed one
22:25
<
khuck >
source and binary?
22:25
<
khuck >
or binary with/without include?
22:25
<
hkaiser >
include_directories("${CMAKE_BINARY_DIR}") and include_directories("${CMAKE_BINARY_DIR}/include")
22:29
<
khuck >
that seems to have done it. I'll submit a patch/PR
23:02
eschnett has quit [Quit: eschnett]