hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
ct_clmsn has quit [Quit: Leaving]
Yorlik_ has joined #ste||ar
Yorlik__ has quit [Ping timeout: 260 seconds]
hkaiser has quit [Quit: Bye!]
prakhar has joined #ste||ar
prakhar is now known as PrAkHaR
PrAkHaR is now known as prakhar
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 268 seconds]
K-ballo1 is now known as K-ballo
matrixb01x has joined #ste||ar
<matrixb01x>
I had a question redarding making python bindings for HPX . where would one start to work from . or just picking algorithm and do it one by one ?
<gonidelis[m]>
matrixb01x: just pick an algo. i would suggest you find a tool that binds python to C++ code
<matrixb01x>
i am thinking of using pybind11 . but i have a question if we just have to access the algorithm we can make use of ctypes to access shared files .so
<gonidelis[m]>
a student try to work on this project last year and he used pybind11 successfully so that's a good choice
<Yorlik>
The problem is dragonspeak is header only and I quickly run into double symbols when linking.
<K-ballo>
sounds like it's not a proper header only library then
<K-ballo>
shared_ptr<T> is a complete type, independent of T
<K-ballo>
and you should be able to declare the serialization for T in the header, define it in the source
<K-ballo>
I don't know if that would be enough though
<Yorlik>
K-Ballo: I'm not sure what you mean with a proper header only library here. Also I still feel quite wonky with all these HPX macros. Trying to use them as I do now, gives me static asserts.
<Yorlik>
I'm totally not happy with that current construct tbh. E.g. having the server config in a function that stores it as a static variable ... looks a bit like hack to me.
<Yorlik>
Maybe I should write some proper wrapper type I can expose and use.
<K-ballo>
a header only library doesn't result in double symbols when linking
<K-ballo>
if it does, it's broken
<K-ballo>
header only libraries can be included from 2 or more cpp files
tufei has joined #ste||ar
<Yorlik>
I think I need to learn something here. Are there good guidelines to achieve that ?
<Yorlik>
I guess one problem we have is, that our library is using a static library under the hood that is not header only. So maybe the entire idea is just wrong.
<Yorlik>
I'm also spotting some issues: We have some globals in the library. I guess I need to get rid of those.
PritKanadiya[m] has quit [Quit: You have been kicked for being idle]
HHN93 has joined #ste||ar
HHN93 has quit [Quit: Client closed]
HHN93 has joined #ste||ar
HHN93 has quit [Quit: Client closed]
Themis has joined #ste||ar
HHN93 has joined #ste||ar
<HHN93>
hkaiser in some places in the core library we use stl algorithms instead of hpx algorithms, Example : std::sort instead of hpx::sort
<HHN93>
is there any reason for it?
<HHN93>
and often these std algorithms run in sequential mode (no exec policy mentioned), any reason for that?
HHN93 has quit [Client Quit]
HHN93 has joined #ste||ar
<HHN93>
Also, for algorithms which can't be vectorized, can we ignore them?
HHN93 has quit [Client Quit]
Themis has quit [Quit: Client closed]
<srinivasyadav18[>
HHN93 : std algorithms usually used only in sequential cases, i.e they are used only at places where hpx::<algo> runs in sequential
<srinivasyadav18[>
it might be just to not re-implement the basic version of algorithm again, so we can just use std version of algorithm, (but not in all cases). For instance, if any algorithm can be implemented using util::loop, we use the util::loop implementation even for the sequential overloads, because util::loop in unrolled, hence may give better performance.
ct-clmsn has quit [Quit: This computer has gone to sleep]