<Yorlik>
My learning sequence over the decades was like: Basic - Assembler (Z80) - Turbo Pascal - C - C++ and aothers.
<Yorlik>
Basic and Assembler was still ins chool.
<Yorlik>
school
<Yorlik>
But I had long phases in my life without any coding
diehlpk_work has quit [Remote host closed the connection]
nikunj97 has quit [Remote host closed the connection]
bita has joined #ste||ar
bita has quit [Quit: Leaving]
hkaiser has quit [Quit: bye]
Yorlik has quit [Read error: No route to host]
akheir has quit [Quit: Leaving]
iti has joined #ste||ar
<iti>
@diehlpk_work : Hello Patrick, I read your email, thanks for the direction. I had one request though, I was hoping to first make changes/addition to blaze iterative as it feels starting with making blaze iterator more streamlined & conforming should be easier to begin with (considering my less exposure to blaze) and then move to working on blaze accordingly. Do you think this is possible?
iti has quit [Quit: Leaving]
nikunj97 has joined #ste||ar
mdiers_ has quit [Remote host closed the connection]
hkaiser has joined #ste||ar
Hashmi has joined #ste||ar
Abhishek09 has joined #ste||ar
<Abhishek09>
hkaiser: When rtohid will be available?
<Abhishek09>
here
<hkaiser>
Abhishek09: don't know - it's 3:40am in the morning right now
<hkaiser>
so most likely he will not be here any time soon
<nikunj97>
hkaiser, did you not sleep?
<hkaiser>
can't sleep...
<nikunj97>
a man of your age should sleep by 11pm you know ;)
<Abhishek09>
hkaiser: When its best time to talk with him?
<hkaiser>
nikunj97: I did, just awake again
<hkaiser>
Abhishek09: how should I know?
<hkaiser>
I'll ping him later in th emorning
<Abhishek09>
Thanks
Abhishek09 has quit [Remote host closed the connection]
nikunj97 has quit [Ping timeout: 260 seconds]
Hashmi has quit [Quit: Connection closed for inactivity]
mdiers_ has joined #ste||ar
Hashmi has joined #ste||ar
mdiers_ has quit [Remote host closed the connection]
mdiers_ has joined #ste||ar
nikunj97 has joined #ste||ar
Yorlik has joined #ste||ar
<nikunj97>
hkaiser, btw simdized 2d stencil is almost ready. It should be complete in a couple of days! We can then benchmark it on A64FX utilizing SVE as well
<nikunj97>
I'm using nsimd as a backend just coz it supports SVE intrinsics
<nikunj97>
*simdized 2d distributed stencil
<nikunj97>
using HPX of course ;)
<hkaiser>
nikunj97: nice!
<nikunj97>
hkaiser, btw I'm not writing a distributed version
<nikunj97>
would that be fine?
<hkaiser>
shrug, you tell me
<nikunj97>
julich guys are happy with an on node version
<nikunj97>
so unless fujitsu want to test on multiple nodes
<hkaiser>
otoh, if you just replaced the actual kernels in our existing codes with yours - that would give you one
<nikunj97>
I won't add channel support
<nikunj97>
hkaiser, I'm actually looking into it atm
<nikunj97>
that seems easier now that I know the complete data layouts
<nikunj97>
a few changes in the init function
<hkaiser>
and as things are 100% orthogonal...
<hkaiser>
nikunj97: did you use intrinsics for the simd stuff? or some library?
<nikunj97>
I'm using nsimd
<nikunj97>
it's a library that supports arm side of things well
<nikunj97>
sve and neon
<hkaiser>
good
<nikunj97>
the easiest thing would be to update the init function to change the data layout
<heller1>
nikunj97: the next step will then be use the roofline model to see how well you are able to utilize the system with your application ;)
<nikunj97>
and everything else remains the same
<nikunj97>
heller1, gotcha
<heller1>
nikunj97: ping me if you need some help there
<nikunj97>
heller1, I will need stream benchmarks for roofline model right?
<heller1>
yes, or something similar to that
<nikunj97>
this is the first time I'm actually analyzing performance and trying to optimize on distributed setting
<nikunj97>
so please spare my silly doubts ;)
<nikunj97>
heller1, alright got it. I'll work today on updating the init function coz everything else seems to be in place. I'm currently going through the 2d stencil video from serial to distributed that you gave a couple of years ago
<nikunj97>
to understand the code better
<heller1>
ok
<heller1>
there's also nice material regarding roofline from LBNL
<zao>
You can also query on installed packages by omitting the -p and just saying `rpm -q hpx`
<nikunj97>
zao, hpx-devel works
<nikunj97>
I finally have HPX in /usr/lib64/cmake simbergm hkaiser ^^
<hkaiser>
nikunj97: ok
<hkaiser>
that sounds about right
<hkaiser>
is there a standardized place on fedora where cmake files should go?
<nikunj97>
depends on how the rpm file is written
<nikunj97>
it could end up in /usr/lib(or lib64)/cmake
<nikunj97>
or /usr/share/cmake
<hkaiser>
ok, so we're fine - I guess
<nikunj97>
yes! Why do we have a hpx standalone package on fedora btw?
<nikunj97>
if we insist people to use cmake instead
<nikunj97>
I mean standalone package would mean you're upto no good. Use g++ with -I and -L flags yourself
<nikunj97>
isn't it what we don't want the user to go through?
<hkaiser>
for other packages that depend on hpx and don't need the headers etc.
<nikunj97>
but those other packages will still require cmake scripts, won't they?
<hkaiser>
why?
<nikunj97>
I mean those other package will try to find hpx first
<hkaiser>
well if you have other rpms depending on hpx you don't need the headers
<nikunj97>
I see
<nikunj97>
so they link directly
<nikunj97>
but rpm is essentially a build script
<nikunj97>
for example hpx uses cmake within the script
<hkaiser>
aren't those binaries?
<simbergm>
nikunj97: packages will usually depend on the -dev packages for building, but once you install a package you don't need the cmake files, headers, etc. anymore
<nikunj97>
that makes sense
<nikunj97>
I get it
<zao>
Someone that builds would need both the base and devel packages, but they can redistribute their artifacts (RPM package, tarball, carrier pigeon) to someone that just needs the base package.
<zao>
Similarly on clusters, you typically don't need -devel installed on compute nodes, but may want it on the head node.
<nikunj97>
hkaiser, did Sandia publish our resiliency work?
<nikunj97>
anywhere online basically?
<nikunj97>
a link I can use
<hkaiser>
nikunj97: not yet, I will talk to Keita tomorrow, will ask how he wants to move forward
<hkaiser>
we might at least upload it to archive
<nikunj97>
alright, let me know if you need help with off node resiliency
<hkaiser>
k
<nikunj97>
I'm kinda liked it last time
<nikunj97>
hkaiser, yes that's what I wanted
<nikunj97>
we're working on a beginner's guide to high performance computing
<nikunj97>
I wanted that thing to be there
<nikunj97>
will help HPX's case
<nikunj97>
didn't know /usr/bin/c++ and /usr/bin/g++ are considered different compilers for cmake
<hkaiser>
nikunj97: would you comment on the ticket, pls - we might just close it
<kale>
I found a way to handel dependencies. I am looking into pip packages of different libraries to look how they tackle similar issues
<kale>
I would be glad to know your views on my draft.
<diehlpk_mobile[m>
kale I will have a look tomorrow, have some urgency today
<zao>
kale: Bonus points for your font choices - very nice :D
Abhishek09 has joined #ste||ar
akheir has joined #ste||ar
<Abhishek09>
rtohid?
<nikunj97>
zao, :D
<nikunj97>
kale, I'm looking at your proposal atm
<Abhishek09>
hkaiser : have u contacted rtohid ?
<nikunj97>
hkaiser, simbergm, jbjnr, heller1 : it'll be great if you could provide feedback to the email I sent. Thanks in advanced :)
<kale>
zao, :)
bita has joined #ste||ar
<Abhishek09>
kale: Which project you working on?
<kale>
Abhishek09, I'm working pip package for phylanx.
<Abhishek09>
kale: cool , i also
Hashmi has quit [Quit: Connection closed for inactivity]
weilewei has joined #ste||ar
<nikunj97>
kale, I'm a bit confused about your solution. Could you explain me what parts are you going to execute in the preparation machine and what part will be executed at the user-end?
<hkaiser>
Abhishek09: I have not yet, if he does not show up here I can send an email, that's all
<hkaiser>
I think that's what you could do as well
<kale>
nikunj97, Have a look the detailed solution. I've written the part of handling (installing if necessary) dependencies within the part "Extending solution to handle missing dependencies".
<kale>
The part "Packaging Project" under "detailed explaination" is about building pip package with python bindings to a cpp library.
<nikunj97>
kale, I meant to ask if these scripts you'll invoke on user-end?
<hkaiser>
the course material is there as are recorded videos
<nikunj97>
what do you think about the structure of the guide?
<hkaiser>
have not looked yet
<nikunj97>
ohh alright
<nikunj97>
please have a look when you have time
<hkaiser>
k
nan1 has joined #ste||ar
<heller1>
hkaiser: thanks, I have another comment ;)
<hkaiser>
heller1: sure you do
<heller1>
sorry for being pedantic here ...
<hkaiser>
heller1: I just don't have time for this
<heller1>
could as well be implemented once there's a need for it
<heller1>
This PR is strictly about enabling serialization for `std::variant`, right?
Abhishek09 has quit [Remote host closed the connection]
karame78 has joined #ste||ar
<hkaiser>
heller1: yes
<hkaiser>
heller1: the get helpers are needed for gcc's implementation of std::visit
<heller1>
I see
kale_ has joined #ste||ar
<hkaiser>
otoh, the get overloads are very similar to the ones already in place
kale has quit [Ping timeout: 260 seconds]
<heller1>
sure
<Yorlik>
Found a great way to leak Objects owned by a unique_ptr today: Make an object pool returning such a pointer with a unique deleter that returns the object. Then call unique_ptr.release() just before it goes out of scope. I think I had thousands of Lua states and wondered why :D
<Yorlik>
I wanted to manually call reset() for a debugging reason and confused it with release() :D
<zao>
The more the merrier!
<zao>
I wonder, is there a [[must_use]]-like attribute in C++ to ensure that you do anything with the return value?
<zao>
#[must_use] has saved my bacon so many times in Rust.
Abhishek09 has joined #ste||ar
<nikunj97>
Abhishek09, yt?
<hkaiser>
zao: [[nodiscard]]
<Abhishek09>
nikunj97 What?
<nikunj97>
Abhishek09, how's your progress with pip package?
<Abhishek09>
I builded phylanx
<nikunj97>
nice. Did you figure out a way to approach the project?
<Abhishek09>
Yes ,till now 2 approch have discovered
<nikunj97>
elaborate
<Abhishek09>
i will research more and craft a proposal
<nikunj97>
looking forward to your proposal
<Abhishek09>
That's why i want discuss with rtohid
<nikunj97>
you can discuss it with me
<nikunj97>
I'm also a mentor ;)
<Abhishek09>
but he is unavailable
<Abhishek09>
You are mentor of this project?
<Abhishek09>
nikunj97
<nikunj97>
yup
<Abhishek09>
i m focusing to build a universal wheel , platform independent
<Abhishek09>
that will be more valuable
<nikunj97>
what do you do for updations?
<nikunj97>
and how do you package the dependencies?
<Abhishek09>
I will simply bind all deps
<nikunj97>
but that will lead to redundancies
<nikunj97>
what if I already have hpx
<Abhishek09>
it will skip
<Abhishek09>
or overwrite the updated version
<Abhishek09>
with
<nikunj97>
I didn't get the skip part?
<nikunj97>
also overwriting is undersirable
<nikunj97>
*undesirable
<Abhishek09>
first check ,if not exist then procced to install
<nikunj97>
i see
<Abhishek09>
Why undesirable ?
<nikunj97>
I'll be looking forward in seeing the implementation details of your proposal
<nikunj97>
well if you overwrite the previously existing package
<nikunj97>
you may brick some other application that relies on it
<Abhishek09>
nikunj97: what ur solution toward this?
<Yorlik>
zao: release() unfortunately is not [[nodiscard]]. In another channel someone explained, that the idea to make release()[[nodiscard]] was dropped because it would bust many peoples code (damn you Google) who use unique_ptr as a scope guard with a no delete deleter..
<nikunj97>
Abhishek09, I haven't thought of any really
<nikunj97>
I'm waiting for interesting solutions from you guys
<zao>
Yorlik: Hah.
<nikunj97>
Abhishek09, If I come up with a solution, why won't I go ahead and implement it myself too ;)
<Abhishek09>
nikunj97: You are mentor , you may already aware of solution
<nikunj97>
Abhishek09, sure I do have something in mind
<nikunj97>
but that'll only bias your thinking
<Abhishek09>
nikunj97: i thought to use manylinux for building for all oses
<Abhishek09>
but that will be very difficult and that will complex
<Abhishek09>
nikunj97?
<hkaiser>
akheir: yt?
rtohid has joined #ste||ar
<rtohid>
Abhishek09 I'm here!
<zao>
IRC - like two boats passing each other in the sea at night.
<Abhishek09>
rtohid: Does we use shared lib for C++ deps?
<rtohid>
Abhishek09 depends on the library but generally yes.
<nikunj97>
Abhishek09, why do you find manylinux complex?
<Abhishek09>
rtohid: because CentOs have os packages much more
<Abhishek09>
nikunj97
<nikunj97>
what do you mean much more?
<Abhishek09>
rtohid sorry
<nikunj97>
also it depends on the user if he wants static or dynamic
<Abhishek09>
dnf/apt nikunj97
<nikunj97>
hpx by default has 2 static librarie
<nikunj97>
*libraries
<nikunj97>
Abhishek09, what's your point?
<Abhishek09>
building pip for fedora is much easy than manylinux because we have dnf / os package for deps
<nikunj97>
yes sure
<nikunj97>
but again if all you want are precompiled binaries, how is it different
<nikunj97>
if you use manylinux vs your own docker image
<nikunj97>
manylinux has an advantage of being compliant with most linux distros
<Abhishek09>
Yes, that why i want to use
<Abhishek09>
but i will very complicated
<nikunj97>
again, I don't see the complications
<Abhishek09>
If i build whl for one os . can we make for another os easily? nikunj97
<nikunj97>
depends
<Abhishek09>
What?
<nikunj97>
if the binaries have symbols not understood by the linux you're in
<nikunj97>
then it won't work
<nikunj97>
that's why I suggest you to use manylinux
<nikunj97>
it's python standard compliant
<nikunj97>
if you make it work there
<nikunj97>
your wheel will work with any manylinux compliant linux distro
<nikunj97>
your own docker image may or may not be
<Abhishek09>
But rtohid does want
<Abhishek09>
rtohid not want
<nikunj97>
I believe rtohid wanted you to try and install packages in isolation on a docker
<Abhishek09>
Yes
<nikunj97>
and not convert that docker build to a wheel
<nikunj97>
rtohid, am I right?
<hkaiser>
simbergm: yt?
<simbergm>
hkaiser: yeah, a few minutes
<rtohid>
Abhishek09 nikunj97 is exactly right!
<Abhishek09>
rtohid: That means you agree with my earlier discuusion about manylinux
<Abhishek09>
rtohid: i build the phylanx that you told me to do as a 1st step
<rtohid>
Abhishek09 I may have misunderstood what you'd said before.
<rtohid>
all tests pass?
<Abhishek09>
no rtohid
<hkaiser>
simbergm: can I build kokkos without cuda (just for experimentation)?
<simbergm>
hkaiser: absolutely
<rtohid>
Abhishek09 some do?
<simbergm>
If you're on develop you want `Kokkos_ENABLE_HPX/CUDA/OPENMP/SERIAL/ROCM/...`
<simbergm>
Pick your poison
<Abhishek09>
rtohid `some do?` means ?
<hkaiser>
simbergm: ok, so SERIAL gives me a simple installation for testing - great
<rtohid>
Abhishek09 does any of the tests pass?
<Abhishek09>
rtohid : yes , 68 % passed
<Abhishek09>
93 failed
<hkaiser>
simbergm: what branch should I use for experimentation? the latest release?
nan1 has quit [Ping timeout: 240 seconds]
<Abhishek09>
rtohid: if we shared lib for c++ , then how to update deps , or skip that deps if we already have?
<Abhishek09>
if we use
<simbergm>
hkaiser: yeah, I think 3.0.0 should be goos
<simbergm>
They got proper cmake support quite recently, if it's not in 3.0 try develop
<rtohid>
Abhishek09 could you elaborate please?
<hkaiser>
simbergm: doesn't work for MSVC, though :/
<Abhishek09>
As you have said we will use shared lib for C++ deps ,then how to update that deps or skip this deps if we already have that C++ deps installed rtohid
shahrzad has joined #ste||ar
<rtohid>
Abhishek09 do you mean libraries implemented in C++ or the language itself?
<Abhishek09>
rtohid C++
<simbergm>
WSL?
<rtohid>
Abhishek09 why would you need to update C++ or its dependencies?
<Abhishek09>
if our lib becomes old , we will use new version rather than old rtohid
<hkaiser>
simbergm: yah, or docker
<rtohid>
Abhishek09 that's ok. we don't need to worry about that.
<hkaiser>
rtohid: would you have a basic dockerfile for me with all the tools install I need to build hpx?
K-ballo has quit [Quit: K-ballo]
<Abhishek09>
rtohid nikunj97 : that means we will lock all deps with specified version .
<hkaiser>
nikunj97: nsimd serialization does not belong into HPX, does it?
<nikunj97>
nope
<hkaiser>
don't forget the specialization for is_bitwise_serializable to enable zero-copy serialization for those types
<nikunj97>
will remember. Thanks!
<nikunj97>
I decide to fight a single headed dragon before I fight this hydra. Let me first try to add simd to on node coz iterators are giving up on me too ;_;
shahrzad has joined #ste||ar
nan1 has quit [Ping timeout: 240 seconds]
<nikunj97>
hkaiser, how do I extract nsimd<float, 1, nsimd::cpu> from hpx::util::detail::operator_brackets_proxy<hpx::compute::detail::iterator<nsimd::pack<float, 1, nsimd::cpu>, hpx::compute::host::block_allocator<nsimd::pack<float, 1, nsimd::cpu>, hpx::threads::executors::local_priority_queue_attached_executor> > >
<hkaiser>
huh?
<hkaiser>
show me code
<nikunj97>
hold on
weilewei has quit [Remote host closed the connection]
<hkaiser>
nikunj97: is your iterator a random access iterator?
weilewei has joined #ste||ar
<nikunj97>
hkaiser, ys
<nikunj97>
*yes
<hkaiser>
where is it defined?
<nikunj97>
let me add those files as well
<nikunj97>
hkaiser, updated
<nikunj97>
hkaiser, let me ask heller1. He should know.
bita has quit [Ping timeout: 260 seconds]
<nikunj97>
heller1, about your 2d stencil code. Why is it that when I pass float to hpx::compute::vector, the iterators seem to work as expected. But when I replace them with nsimd::pack<float>, compiler breaks?
<heller1>
Why don't you show me the compiler error?
<nikunj97>
it's essentially about no + operator defined. Let me show the complete error