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/
EverYoung has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
EverYoung has quit [Remote host closed the connection]
EverYoun_ has joined #ste||ar
Anushi1998 has quit [Remote host closed the connection]
Anushi1998 has joined #ste||ar
EverYoun_ has quit [Ping timeout: 252 seconds]
EverYoung has joined #ste||ar
Anushi1998 has quit [Ping timeout: 245 seconds]
anushi has quit [Ping timeout: 245 seconds]
<parsa[w]> hpx's circleci2 workflow have ruined the queue
<parsa[w]> ...flows*
EverYoung has quit [Remote host closed the connection]
mcopik_ has quit [Ping timeout: 256 seconds]
eschnett has joined #ste||ar
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 264 seconds]
<heller> parsa[w]: how so?
<nikunj> what is 1 tab equivalent to in terms of spaces in hpx code?
<K-ballo> let's say 4
<K-ballo> although I don't like how that sounds
<nikunj> @K-ballo: with 4 spaces in 1 tab my pr is giving inspect tab error. link: https://9800-4455628-gh.circle-artifacts.com/0/tmp/circle-artifacts.nkLjCos/hpx_inspect_report.html
<K-ballo> nikunj: precisely! tabs are not equivalent to a number of spaces...
<K-ballo> each program decides their own equivalence, and things break
<K-ballo> in HPX we don't allow tabs, only spaces
<zao> Healthy attitude.
<nikunj> @K-ballo: aah, that's why it was all breaking
<nikunj> so if i were to replace tabs with 4 spaces things will run fine?
<K-ballo> the style check will no longer complain, correct
<nikunj> @K-ballo: thanks for the help, I'll correct it in my code right away
nikunj has quit [Quit: Page closed]
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 256 seconds]
daissgr has quit [Ping timeout: 240 seconds]
sykatnip has joined #ste||ar
sykatnip has quit [Client Quit]
K-ballo has quit [Quit: K-ballo]
hkaiser has quit [Quit: bye]
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 263 seconds]
EverYoung has joined #ste||ar
EverYoung has quit [Ping timeout: 265 seconds]
prashantjha has quit [Quit: Leaving]
eschnett has quit [Quit: eschnett]
nanashi55 has quit [Ping timeout: 265 seconds]
nanashi55 has joined #ste||ar
EverYoung has joined #ste||ar
EverYoung has quit [Ping timeout: 245 seconds]
anushi has joined #ste||ar
<github> [hpx] msimberg force-pushed circle_2 from 1375ed7 to d9b11bd: https://git.io/vdKfd
<github> hpx/circle_2 d9b11bd Mikael Simberg: Use make instead of ninja for circleci
<github> [hpx] msimberg pushed 1 new commit to circle_2: https://git.io/vxYyL
<github> hpx/circle_2 ebfc652 Mikael Simberg: temporary: make header test output verbose/increase timeout
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 246 seconds]
<github> [hpx] msimberg force-pushed circle_2 from ebfc652 to 28f2eab: https://git.io/vdKfd
<github> hpx/circle_2 28f2eab Mikael Simberg: temporary: make header tests depend on core
nikunj_ has joined #ste||ar
jakub_golinowski has joined #ste||ar
Anushi1998 has joined #ste||ar
<github> [hpx] msimberg force-pushed circle_2 from 28f2eab to 1493fa4: https://git.io/vdKfd
<github> hpx/circle_2 1493fa4 Mikael Simberg: temporary: make header tests depend on core
Anushi1998 has quit [Remote host closed the connection]
Anushi1998 has joined #ste||ar
victor_ludorum has joined #ste||ar
EverYoung has joined #ste||ar
<github> [hpx] StellarBot pushed 1 new commit to gh-pages: https://git.io/vxYHN
<github> hpx/gh-pages 33be5fc StellarBot: Updating docs
nikunj_ has quit [Quit: Page closed]
EverYoung has quit [Ping timeout: 245 seconds]
jakub_golinowski has quit [Ping timeout: 260 seconds]
victor_ludorum has quit [Ping timeout: 260 seconds]
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 256 seconds]
victor_ludorum has joined #ste||ar
Anushi1998 has quit [Ping timeout: 245 seconds]
Anushi1998 has joined #ste||ar
victor_ludorum has quit [Ping timeout: 260 seconds]
JKSamir has joined #ste||ar
nikunj has joined #ste||ar
K-ballo has joined #ste||ar
parsa has joined #ste||ar
<github> [hpx] msimberg force-pushed circle_2 from 1493fa4 to c0e7cc9: https://git.io/vdKfd
<github> hpx/circle_2 ebdde25 Thomas Heller: Switching to CircleCI 2.0...
<github> hpx/circle_2 18cd12a Mikael Simberg: Add --output-on-failure flag to CircleCI ctest runs
<github> hpx/circle_2 3e0c6c1 Mikael Simberg: Clean up CircleCI config file
<github> [hpx] msimberg force-pushed circle_2 from c0e7cc9 to 5c14d76: https://git.io/vdKfd
<github> hpx/circle_2 5c14d76 Mikael Simberg: Use 2 cores again for header tests
<github> [hpx] msimberg force-pushed circle_2 from 5c14d76 to efb3b14: https://git.io/vdKfd
<github> hpx/circle_2 82aa4b0 Mikael Simberg: Add tests.unit.resource and sort groups in circleci config
<github> hpx/circle_2 efb3b14 Mikael Simberg: Use 2 cores again for header tests
parsa has quit [Read error: Connection reset by peer]
parsa| has joined #ste||ar
victor_ludorum has joined #ste||ar
Anushi1998 has quit [Quit: Leaving]
mcopik_ has joined #ste||ar
victor_ludorum has quit [Ping timeout: 260 seconds]
Viraj has joined #ste||ar
<Viraj> Hi, does anybody know how to generate example trace files in HPX?
Viraj has quit [Ping timeout: 260 seconds]
parsa| has quit [Quit: *yawn*]
Viraj has joined #ste||ar
Viraj has quit [Ping timeout: 260 seconds]
victor_luforum has joined #ste||ar
nikunj has quit [Quit: Page closed]
nikunj has joined #ste||ar
JKSamir has quit [Ping timeout: 260 seconds]
Viraj has joined #ste||ar
diehlpk has joined #ste||ar
<Viraj> Hi, how can i generate trace files for a program execution?
Anushi1998 has joined #ste||ar
<K-ballo> what are trace files?
Viraj has quit [Ping timeout: 260 seconds]
Anushi1998 has quit [Ping timeout: 245 seconds]
diehlpk has quit [Ping timeout: 256 seconds]
eschnett has joined #ste||ar
mcopik_ has quit [Ping timeout: 264 seconds]
Anushi1998 has joined #ste||ar
victor_luforum has quit [Ping timeout: 260 seconds]
hkaiser has joined #ste||ar
parsa has joined #ste||ar
Anushi1998 has quit [Quit: Leaving]
diehlpk has joined #ste||ar
diehlpk has quit [Ping timeout: 256 seconds]
mcopik_ has joined #ste||ar
verganz has joined #ste||ar
nikunj has quit [Quit: Page closed]
Anushi1998 has joined #ste||ar
sharonhsl has joined #ste||ar
sharonhsl has left #ste||ar [#ste||ar]
anushi has quit [Read error: Connection reset by peer]
anushi has joined #ste||ar
diehlpk has joined #ste||ar
diehlpk has quit [Remote host closed the connection]
mcopik_ has quit [Ping timeout: 248 seconds]
jakub_golinowski has joined #ste||ar
jakub_golinowski has quit [Remote host closed the connection]
anushi has quit [Read error: Connection reset by peer]
anushi has joined #ste||ar
diehlpk_work has joined #ste||ar
anushi has quit [Ping timeout: 246 seconds]
mcopik_ has joined #ste||ar
parsa has quit [Quit: Zzzzzzzzzzzz]
jakub_golinowski has joined #ste||ar
<diehlpk_work> Hi jakub_golinowski
<jakub_golinowski> diehlpk_work hello
<diehlpk_work> I read your proposal and would be nice to have more implementation details
<diehlpk_work> It is quite godd, but you could improve it by adding more details
<jakub_golinowski> ok
<jakub_golinowski> and for my question with the actual moment in which the parallel.cpp file should be edited
<jakub_golinowski> (in OpenCV)
<jakub_golinowski> so is the scenario like this
<diehlpk_work> First step would be edit this file
<diehlpk_work> and read the image from filesytem
<jakub_golinowski> ok so the idea is to have the QT application that uses OpenCV that uses HPX
<jakub_golinowski> in a sense that the user is isolated from the HPX details?
anushi has joined #ste||ar
<diehlpk_work> No, everything is done in a hpx_main
<diehlpk_work> You can call all opencv functions inside the hpx_main
<diehlpk_work> and also qt
<jakub_golinowski> Ok, so in this sense HPX is on top
<diehlpk_work> Yes
<diehlpk_work> But the user should not deal with hpx
<diehlpk_work> So he just uses the hpx_main and can increase the cpus with -t or --hpx:threads=
<diehlpk_work> You somehow need the hpx_main to run hpx threads
<jakub_golinowski> so in the context that we discuss a user as the end-user, or another words the person that just runs the app
<jakub_golinowski> not as a user as developer using hpx
<diehlpk_work> Yes
<hkaiser> qt is special as many operations have to run in the main thread - see the qt example for how this can be achieved
<jakub_golinowski> ok, I will look at it and try to identify the difficulties
<diehlpk_work> jakub_golinowski, The end user want to use like with openmp
<diehlpk_work> He compiles opencv with hpx support
<diehlpk_work> and just specifiy -t
anushi has quit [Ping timeout: 264 seconds]
<diehlpk_work> The same for openmp the user compiles opencv with openmp support and uses OMP_NUM_THREADS to define the amoutn of cpus
<jakub_golinowski> So as I see it for now after the initial exploration of HPX I will look at the project from the other angle, namely from the OpenCV side.
<jakub_golinowski> Ok so I will play around with OpenCV for now and focus on the current parallelism implementation.
<jakub_golinowski> And as for exploring the HPX further I will look at QT example to identify the difficulties in ensuring proper threading
<diehlpk_work> Sounds good
<diehlpk_work> And try to compile OpenCV with openmp
<diehlpk_work> Would be somethign like 1) Compile HPX 2) Compile OpenCV with HPX 3) Generate a own CMake and include both
<diehlpk_work> Later QT will be included, but for the first phase it would be something like this
<jakub_golinowski> diehlpk_work so you mean OpenMP or HPX?
<diehlpk_work> Should be the same
anushi has joined #ste||ar
<diehlpk_work> Without Compiling HPX
<diehlpk_work> For OpenMP you can compile OpenCV directly
<diehlpk_work> Here they explain how to do it with openmp
<diehlpk_work> cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_OPENMP=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
<diehlpk_work> For HPX I like to have
<diehlpk_work> cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_HPX=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
mcopik_ has quit [Ping timeout: 264 seconds]
<diehlpk_work> And a additional -D for HPX_ROOT
<jakub_golinowski> ok
<jakub_golinowski> thank you very much for the reference
<diehlpk_work> You are welcome
<diehlpk_work> And for the application you have to add find_package for hpx and opencv
<diehlpk_work> to your cmake project
<diehlpk_work> Like you did for the matrix matrix multiplication
<diehlpk_work> You just would add find opencv
<diehlpk_work> When you are using qt you have to add find_package qt
<zao> (as a side note, consider installing into a per-user location instead of into the very shared /usr/local ;) )
<zao> But that's digressing.
<diehlpk_work> Yes, zao is right
<diehlpk_work> I was lazy and copied the cmake command from the tutorial
<jakub_golinowski> diehlpk_work thank you for the instruction about application's CMakeLists.txt
<zao> This project sounds way too fun.
<jakub_golinowski> zao thanks for the hint - actually I am following it and am building all the libraries within the home directory
<jakub_golinowski> and I agree this project is exciting
<diehlpk_work> Yes, it is and with the qt application there is a really nice show case
EverYoung has joined #ste||ar
<diehlpk_work> We could write a nice blog post about this project
<jakub_golinowski> when it is ready?
<diehlpk_work> Yes
EverYoung has quit [Ping timeout: 276 seconds]
<diehlpk_work> With a nice video of your application
parsa has joined #ste||ar
eschnett has quit [Quit: eschnett]
parsa has quit [Quit: Zzzzzzzzzzzz]
parsa has joined #ste||ar
katywilliams has joined #ste||ar
katywilliams has quit [Ping timeout: 264 seconds]
katywilliams has joined #ste||ar
<parsa> hkaiser: ping
<hkaiser> parsa: here
<parsa> hkaiser: what did you mean by "utilize one of the existing extraction functions for this instead (for instance phylanx::execution_tree::numeric_operand or similar)"?
<parsa> i need the index to determine which argument came in
<hkaiser> parsa: those functions do that for you
<parsa> okay that's just for the extraction from the variant, not the switch on the type itself. right?
<parsa> :s/type/index
<hkaiser> sure it is
<hkaiser> it will fail if the type does not match your expectations
katywilliams has quit [Ping timeout: 240 seconds]
<parsa> hkaiser: how do i check for nil then?
<hkaiser> do you have to check for it?
<hkaiser> but it's valid(arg)
<hkaiser> if(!valid(arg)) --> arg == nil
<parsa> thanks
katywilliams has joined #ste||ar
jakub_golinowski has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
katywilliams has quit [Ping timeout: 264 seconds]
EverYoung has quit [Ping timeout: 245 seconds]
parsa has quit [Quit: *yawn*]
eschnett has joined #ste||ar
parsa has joined #ste||ar
<parsa> hkaiser: extract_* throws an exception if the type is wrong. are there any alternatives?
<hkaiser> no, why isn't that the right approach?
<hkaiser> if you expect an int and no int is given it should throw, no?
<parsa> because it might be a bool
<hkaiser> extract_integer_value handles bool's
<parsa> but i would just receive an int and can't tell it which one was passed
<hkaiser> do you care?
<parsa> yes
<hkaiser> why?
Smasher has quit [Remote host closed the connection]
<hkaiser> should a bool behave differently from an int that is equal to 0 or 1?
Smasher has joined #ste||ar
<parsa> axis is an int, keep_dims is a bool… you could do fx(0) or fx(False) which are different
<hkaiser> doesn't sound right to me
<hkaiser> I thin kwe should explicitly distinguish the two arguments
<parsa> what's wrong with it?
<hkaiser> or use -1 for keep_dims
<parsa> -1 has a different meaning
<hkaiser> it's brittle
<parsa> -1 is a valid axis value
<hkaiser> what meanings do you have?
<parsa> any integer value may be used for axis, depending on the dimensions of node_data
<hkaiser> what do negativ eints mean?
<parsa> e.g. for a matrix -2 and 0 mean the rows, -1 and 0 mean the columns
<hkaiser> for the same argument?
<parsa> yes NumPy compatbility
<hkaiser> and what does a positive integer mean?
<parsa> if a is a matrix, sum(a, -1) and sum(a, 1) are equivalent, so are sum(a, -2) and sum(a, 0)
<hkaiser> have a links to the docs? I don't get this
<parsa> "axis may be negative, in which case it counts from the last to the first axis"
Anushi1998 has quit [Remote host closed the connection]
<hkaiser> ahh
<hkaiser> parsa: but keepdims is a separate arg, so there is no way for it to clash with the axis?
<hkaiser> you can access the axis using extract_integer_value and keepdims using the boolean counterpart
<parsa> axis and keepdims can't be used together according to my tests. so it's pointless to have both as argument. you'd have to do sum(a, nil, True) to call it if we have 3 arguments
<hkaiser> parsa: numpy has it as two arguments
<hkaiser> yes, using sum(a, nil, True) would be the correct solution
<parsa> looks hideous
<hkaiser> your solution is brittle and non-explainable
<hkaiser> False == 0 and True == 1 how do you distinguish those?
<hkaiser> sum(a, nil, 1) will work as well, btw
<hkaiser> or in python numpy.sum(1, keepdim=1)
<parsa> right. there's no way around it then. 3 arguments it is then
<parsa> hkaiser: updated #311
diehlpk_work has quit [Quit: Leaving]
<hkaiser> parsa: much better
<parsa> so there's room for improvement?
<hkaiser> have not looked closer ;)
<hkaiser> but it's much more readable now, don't you agree?
<hkaiser> you still use the index() function, btw
<hkaiser> why?
<parsa> no idea what that "if" is there for… i'll remove it
<hkaiser> lol
<hkaiser> you also use get<4>, still, why?
<hkaiser> use extract_numeric_value instead
vamatya has joined #ste||ar
<parsa> fixed.
<hkaiser> nice
<hkaiser> parsa: is the check on line 205 still needed?
<hkaiser> you're checking this already above
<parsa> you're right, it's redundant. removed.
<parsa> when will we add tensors?
katywilliams has joined #ste||ar
<parsa> hkaiser: ^
<hkaiser> parsa: ;-)
<hkaiser> tensors: no idea
<parsa> i mean numpy has nd-arrays, looks like an obvious thing people would ask for
<hkaiser> nod
<hkaiser> parsa: let's get the infrastructre in place and a couple of algorithms implemented in a performant way first
<hkaiser> right
vamatya has quit [Ping timeout: 264 seconds]
<parsa> hkaiser: so wrong match_data value doesn't show itself except in PhySL?
<hkaiser> yes
<hkaiser> it's used to compile the AST to the execution tree
katywilliams has quit [Ping timeout: 256 seconds]
<parsa> ahh