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
<nikunj> zao: I read about TLS callbacks. I do not think I can use it for our benefit (I will read further to make sure I am not misinterpreting anything). As of now I think mainCRTStartup is the one I'm looking to hook into to change the behavior.
<zao> Yeah, kind of suspected that.
<zao> Figured I'd ask them anyway (they're an executable compressor developer), so might've had some leads.
<nikunj> zao: Having something is better than having no leads :)
<nikunj> zao: I am currently stuck at hooking into mainCRTStartup
<nikunj> I can't seem to make it work right now
nikunj has quit [Ping timeout: 248 seconds]
parsa has joined #ste||ar
nikunj has joined #ste||ar
diehlpk has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
diehlpk has quit [Remote host closed the connection]
diehlpk has joined #ste||ar
diehlpk has quit [Ping timeout: 256 seconds]
parsa has quit [Quit: Zzzzzzzzzzzz]
nikunj has quit [Remote host closed the connection]
nanashi55 has quit [Ping timeout: 240 seconds]
nikunj has joined #ste||ar
Anushi1998 has quit [Ping timeout: 240 seconds]
Anushi1998 has joined #ste||ar
nanashi55 has joined #ste||ar
parsa has joined #ste||ar
hkaiser has joined #ste||ar
Anushi1998 has quit [Ping timeout: 268 seconds]
parsa has quit [Quit: Zzzzzzzzzzzz]
hkaiser has quit [Quit: bye]
Anushi1998 has joined #ste||ar
anushi has joined #ste||ar
parsa[[w]] has joined #ste||ar
parsa[w] has quit [Ping timeout: 276 seconds]
jaafar has quit [Ping timeout: 256 seconds]
anushi has quit [Remote host closed the connection]
hkaiser has joined #ste||ar
nikunj has quit [Ping timeout: 268 seconds]
nikunj97 has joined #ste||ar
Chewbakka has joined #ste||ar
david_pfander has joined #ste||ar
hkaiser has quit [Quit: bye]
<Chewbakka> Given the scenario: a struct A implements component_base and AClient implements the client_base of A. Calling AClient::create(...) puts the instance in the AGAS?
david_pfander has quit [Quit: david_pfander]
Chewbakk_ has joined #ste||ar
hkaiser has joined #ste||ar
Chewbakka has quit [Ping timeout: 264 seconds]
nikunj97 has quit [Quit: Leaving]
nikunj97 has joined #ste||ar
hkaiser has quit [Read error: Connection reset by peer]
anushi has joined #ste||ar
Chewbakka has joined #ste||ar
<github> [hpx] StellarBot pushed 1 new commit to gh-pages: https://git.io/vhRFe
<github> hpx/gh-pages 727c645 StellarBot: Updating docs
Chewbakk_ has quit [Ping timeout: 264 seconds]
anushi has quit [Remote host closed the connection]
Chewbakk_ has joined #ste||ar
Chewbakka has quit [Ping timeout: 245 seconds]
Chewbakk_ has quit [Remote host closed the connection]
anushi has joined #ste||ar
hkaiser has joined #ste||ar
<nikunj97> hkaiser: see pm
hkaiser has quit [Quit: bye]
Anushi1998 has quit [Quit: Bye]
Anushi1998 has joined #ste||ar
anushi has quit [Remote host closed the connection]
mcopik has joined #ste||ar
jakub_golinowski has joined #ste||ar
diehlpk_mobile2 has joined #ste||ar
diehlpk_mobile has joined #ste||ar
diehlpk_mobile2 has quit [Read error: Connection reset by peer]
david_pfander has joined #ste||ar
diehlpk_mobile has quit [Read error: Connection reset by peer]
diehlpk_mobile has joined #ste||ar
diehlpk_mobile2 has joined #ste||ar
diehlpk_mobile has quit [Read error: Connection reset by peer]
diehlpk_mobile2 has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
Chewbakka has joined #ste||ar
<heller> Chewbakka: correct
Chewbakk_ has joined #ste||ar
<Chewbakk_> @heller is there somewhere a more sophisticated example or example which makes use of distribution?
<heller> as in automatic distribution?
K-ballo has joined #ste||ar
Chewbakka has quit [Ping timeout: 245 seconds]
<Chewbakk_> Yes. Currently we have the case that when all nodes execute the code and there should be only one object which should contain the result. This object should be an instance of the client implementation and should be only instantiated once and probably at the root node, right? But to do that?
<heller> well
<Chewbakk_> but how to do that*
<heller> first thing of interested would be how your application operates
<heller> that is, is hpx_main only run on one node or is it run on all?
<Chewbakk_> the application is initialized with "hpx.run_hpx_main!=1"
<Chewbakk_> therefore runs on every node
<heller> ok
<heller> so, you could do somehting like if (hpx::get_locality_id() == 0) { result_object = hpx::new<Component>(hpx::find_here(), ...); result_object.register_as("result_object"); } else { result_object.connect_to("result_object"); }
Chewbakka has joined #ste||ar
Chewbak__ has joined #ste||ar
<Chewbak__> sorry for the bad internet connection here at the university...
<Chewbak__> ok, thanks. I assume HPX blocks the call connect_to, when the object hasn't been initialized yet
<hkaiser> Chewbak__: no, it returns a future
<hkaiser> result_object is conceptually behaving like a future, so those calls don't block
Chewbakk_ has quit [Ping timeout: 245 seconds]
<hkaiser> heller: when will you come to Zurich?
<Chewbak__> is there a difference between "hpx::new<Component>" and "hpx::new_<Component>"
<hkaiser> there is no hpx::new<>
<hkaiser> new is a keyword
Chewbakka has quit [Ping timeout: 276 seconds]
<Chewbak__> ah ok, thank you. I was confused because the example above uses "hpx::new<Component>"
<heller> hkaiser: sunday evening
<hkaiser> heller: ok
<heller> Chewbak__: typo
<heller> hkaiser: wanna have dinner?
<hkaiser> heller: I'll be in late only
<hkaiser> arriving at ZRH 20:30 or so
<heller> yeah, me too
<heller> taking a detour from rapperswill to zurich?
<hkaiser> let's play it by ear, but dinner on Monday might be more realistic
<heller> ok, fair enough
<heller> I'm leaving thursday evening again
<hkaiser> I'll leave Wed morning
<hkaiser> heller: no, I'm going to see my Mom over the weekend
<heller> ahh, nice
<heller> damn ... I should have booked earlier
<heller> hotel prices are crazy
diehlpk_mobile has joined #ste||ar
david_pfander has quit [Ping timeout: 260 seconds]
aserio has joined #ste||ar
diehlpk_mobile has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
david_pfander has joined #ste||ar
Chewbak__ has quit [Remote host closed the connection]
david_pfander has quit [Quit: david_pfander]
david_pfander has joined #ste||ar
<jakub_golinowski> M-ms, yt?
hkaiser has quit [Quit: bye]
jakub_golinowski has quit [Quit: Ex-Chat]
jakub_golinowski has joined #ste||ar
jakub_golinowski has quit [Ping timeout: 265 seconds]
jakub_golinowski has joined #ste||ar
aserio1 has joined #ste||ar
aserio has quit [Ping timeout: 276 seconds]
aserio1 is now known as aserio
<nikunj97> K-ballo: yt?
<K-ballo> yes
<nikunj97> could you now review my pr? I have made changes. Link: https://github.com/STEllAR-GROUP/hpx/pull/3338
<K-ballo> did you fix the precedence bug?
<nikunj97> K-ballo: yes I did
<K-ballo> good
<nikunj97> K-ballo: I have now made the following change: if it's (clang or gnu) and hpx does not have static linking then it will move to my implementation, else it will do what it used to do earlier
<zao> Do we remotely care about mingw-w64?
<zao> I know there was some person a long while ago that tried to get it up to speed.
<nikunj97> zao: Should we?
<zao> Probably not, but it comes to mind when I see "clang or gnu" kind of tests.
Anushi1998 has quit [Quit: Bye]
<zao> Note however that clang-cl is a popular choice for compiler around MSVC.
<nikunj97> zao: mingw uses msvcrt.dll to link with which makes it behavior more msvc like, so adding it to my implementation will break the system
<zao> Again, I don't know how HPX copes with the LLVM toolsets for MSVC, but it's a thing that exists.
<zao> nikunj97: I'm speaking more about HPX in general, if we (as in HPX) care about those toolchains, something like this should probably activate/disable correspondingly.
<zao> I don't know how Intel's Linux compiler is identified with HPX either, but it's very popular to use on clusters.
<zao> A more accurate test might just be "are we on Linux and glibc?"
<zao> Food for thought, I'm not your mentor :P
<nikunj97> zao: changing it to glibc should also work. My implementation uses a libc function so anything with glibc should work well (at least that's what I think in theory).
<nikunj97> K-ballo: should change it to glibc?
<K-ballo> I have no idea
<nikunj97> I will confirm with hkaiser then.
<nikunj97> K-ballo: I was looking into hooking techniques with msvc using "GetProcAddress" but it requires the dll that has the symbol for the function. I want to hook into "mainCRTStartup". do you know which dll contains it?
<K-ballo> is it even in a DLL?
<nikunj97> K-ballo: from what I could find out, it is not. But I wanted to confirm
<K-ballo> I have no idea
<nikunj97> mainCRTStartup is the __libc_start_main version of msvc. It calls main in the msvc runtime system. If I could hook into it then I can do exactly what I did with libc based runtime systems.
<nikunj97> I could not however find out any way to get access to that function.
<M-ms> jakub_golinowski: shortly here
david_pfander has quit [Ping timeout: 256 seconds]
anushi has joined #ste||ar
aserio has quit [Read error: Connection reset by peer]
<jakub_golinowski> M-ms just wanted to ask why HPX asserts that argc cannot be zero? Is the application name crucial?
aserio has joined #ste||ar
<M-ms> jakub_golinowski: I guess in principle not. But if argv is not nullptr it should contain at least the application name. Can't say if this is a standard or convention or something else, but this is the way the real argv behaves. (I think you should be able to have argv = nullptr and argc = 0 though in hpx.)
<zao> The standard requires that argv[argc] always be null, and if non-zero, argv[0] holds "" or a NTMBS of the application name.
<zao> (if non-zero argc)
<zao> A "proper" main would never expect a nullptr argv.
anushi has quit [Ping timeout: 265 seconds]
anushi has joined #ste||ar
jakub_golinowski has quit [Ping timeout: 256 seconds]
jakub_golinowski has joined #ste||ar
aserio has quit [Remote host closed the connection]
aserio has joined #ste||ar
K-ballo has quit [Read error: Connection reset by peer]
K-ballo1 has joined #ste||ar
jaafar has joined #ste||ar
aserio has quit [Ping timeout: 240 seconds]
K-ballo1 is now known as K-ballo
<M-ms> Thanks zao :)
<jakub_golinowski> zao, M-ms start_stop: /home/jakub/hpx_repo/hpx/hpx_start_impl.hpp:337: bool hpx::start(std::nullptr_t, const string&, int, char**, hpx::runtime_mode): Assertion `argc != 0 && argv != nullptr' failed.
<jakub_golinowski> the assertion is stronger -> it does not allow argc to be zero at all
Anushi1998 has joined #ste||ar
anushi has quit [Ping timeout: 265 seconds]
anushi has joined #ste||ar
anushi has quit [Client Quit]
Anushi1998 is now known as anushi
Anushi1998 has joined #ste||ar
diehlpk_mobile has joined #ste||ar
<M-ms> jakub_golinowski: I don't know why it must be like that, but I do know that the application name is used in some places. It could most likely be relaxed though... hkaiser might know better
<M-ms> you can create an array just for that though with say "opencv" as the application name
aserio has joined #ste||ar
<jakub_golinowski> so this is what I do more or less
<jakub_golinowski> you can see here
aserio has quit [Client Quit]
akheir has joined #ste||ar
diehlpk_mobile has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
quaz0r has quit [Ping timeout: 265 seconds]
mcopik has quit [Ping timeout: 265 seconds]
quaz0r has joined #ste||ar
nikunj97 has quit [Ping timeout: 245 seconds]
<M-ms> jakub_golinowski: yep, looks reasonable, you should even be able to do char* my_argv[] = {"backend_launch"}
hkaiser has joined #ste||ar
<zao> A bit icky, considering the constness.
nikunj has joined #ste||ar
galabc has joined #ste||ar
eschnett has joined #ste||ar
<galabc> Hi I have a broad c++ question
diehlpk has joined #ste||ar
<galabc> when I compile this code a get an error saying that A is undeclared
<galabc> so I assume I cant declare variables inside an if branch
<galabc> but I dont know if there is a legit way to what what I want to do
<galabc> I basically want to initalize a different type of vector depending on users input
<galabc> Do anyone know what I could do?
<K-ballo> you'll have to push the calls into the ifs?
<parsa[[w]]> well yeah you declared A inside separate blocks and then outside you're accessing them
parsa[[w]] is now known as parsa[w]
<K-ballo> or turn the whole function into a template, then have the ifs specialize that template
<galabc> ok my function is a template
<galabc> so ok I iwll declare it in the ifs
<galabc> thanks
diehlpk has quit [Ping timeout: 248 seconds]
mcopik has joined #ste||ar
<zao> Generic lambdas? :)
<K-ballo> same notion
<heller> Different ingredients
<galabc> mmh
<galabc> I'm reading that I can make a map of pointers to function
mcopik has quit [Ping timeout: 264 seconds]
<galabc> but my functions dont take the same arguments so I dont think I can do a map
<galabc> Right now I have around 10 templates that take differents inputs and I want to evaluate a given template on given type based on what the user wants
<galabc> right now i use argv[] so the user simply has to run : srun exe_file <template_name> <type>
<K-ballo> this is way to abstract.. but here it goes: you can have a map of say `void (*)()`, and then fill that map from specializations of `template <typename T> void fun()`, note how `T` does not end up in the signature
<K-ballo> any behavior dependent on the type would have to happen on the body of that function
<galabc> okok thank you
<nikunj> hkaiser: see pm
parsa has joined #ste||ar
nikunj has quit [Remote host closed the connection]
nikunj has joined #ste||ar
diehlpk has joined #ste||ar
heller has quit [Remote host closed the connection]
heller has joined #ste||ar
diehlpk has quit [Ping timeout: 260 seconds]
jakub_golinowski has quit [Ping timeout: 256 seconds]
jakub_golinowski has joined #ste||ar
eschnett has quit [Quit: eschnett]
hkaiser has quit [Quit: bye]
nikunj has quit [Quit: Leaving]
nikunj has joined #ste||ar
anushi has quit [Ping timeout: 264 seconds]
akheir has quit [Quit: Leaving]
parsa has quit [Quit: Zzzzzzzzzzzz]
diehlpk has joined #ste||ar
parsa has joined #ste||ar
diehlpk has quit [Ping timeout: 268 seconds]
diehlpk has joined #ste||ar
jakub_golinowski has quit [Quit: Ex-Chat]
diehlpk has quit [Ping timeout: 264 seconds]
nikunj has quit [Quit: Leaving]
Anushi1998 has quit [Quit: Bye]
galabc has quit [Read error: Connection reset by peer]