Re: [OMPI users] MPI is still dominant paradigm?

2020-08-07 Thread Oddo Da via users
On Fri, Aug 7, 2020 at 11:21 AM Gus Correa via users <
users@lists.open-mpi.org> wrote:

> "The reports of MPI death are greatly exaggerated." [Mark Twain]
>
> And so are the reports of Fortran death
> (despite the efforts of many CS departments
> to make their students Fortran- and C-illiterate).
>
> IMHO the level of abstraction of MPI is adequate, and actually very well
> designed.
> Higher levels often make things too specific, less applicable to generic
> code,
> while dispersing into a plethora of niche libraries and modules
> that are bound to become unmaintained, buggy, and obsolete.
> (Where Python seems to be headed, following Perl.)
>
> How many people speak Chinese?
> How many people speak English?
> How many people speak Spanish?
> How many people speak Esperanto?
>

If you re-read my post, I did say I was curious about choices, with
C/C++/Fortran being some of thoise choices, not going away. I grew up on a
Commodore 64 so I have covered the whole stack of programming, from asm to
C to C++ to Java to Scala... Every situation is different and sometimes
being at the low level, controlling everything is exactly what you need.
Sometimes, it is not at all what you need and you wish you had a better way
of expressing things. That's what I think choices are all about :-)

Thank you for the reply!


Re: [OMPI users] MPI is still dominant paradigm?

2020-08-07 Thread Gus Correa via users
"The reports of MPI death are greatly exaggerated." [Mark Twain]

And so are the reports of Fortran death
(despite the efforts of many CS departments
to make their students Fortran- and C-illiterate).

IMHO the level of abstraction of MPI is adequate, and actually very well
designed.
Higher levels often make things too specific, less applicable to generic
code,
while dispersing into a plethora of niche libraries and modules
that are bound to become unmaintained, buggy, and obsolete.
(Where Python seems to be headed, following Perl.)

How many people speak Chinese?
How many people speak English?
How many people speak Spanish?
How many people speak Esperanto?



On Fri, Aug 7, 2020 at 8:28 AM Oddo Da via users 
wrote:

> Hello,
>
> This may be a bit of a longer post and I am not sure if it is even
> appropriate here but I figured I ask. There are no hidden agendas in it, so
> please treat it as "asking for opinions/advice", as opposed to judging or
> provoking.
>
> For the period between 2010 to 2017 I used to work in (buzzword alert!)
> "big data" (meaning Spark, HDFS, reactive stuff like Akka) but way before
> that in the early 2000s I used to write basic multithreaded C and some MPI
> code. I came back to HPC/academia two years ago and what struck me was that
> (for lack of better word) the field is still "stuck" (again, for lack of
> better word) on MPI. This itself may seem negative in this context,
> however, I am just stating my observation, which may be wrong.
>
> I like low level programming and I like being in control of what is going
> on but having had the experience in Spark and Akka, I kind of got spoiled.
> Yes, I understand that the latter has fault-tolerance (which is nice) and
> MPI doesn't (or at least, didn't when I played with in 1999-2005) but I
> always felt like MPI needed higher level abstractions as a CHOICE (not
> _only_ choice) laid over the bare metal offerings. The whole world has
> moved onto programming in patterns and higher level abstractions, why is
> the academic/HPC world stuck on bare metal, still? Yes, I understand that
> performance often matters and the higher up you go, the more performance
> loss you incur, however, there is also something to be said about developer
> time and ease of understanding/abstracting etc. etc.
>
> Be that as it may, I am working on a project now in the HPC world and I
> noticed that Open MPI has Java bindings (or should I say "interface"?).
> What is the state of those? Which JDK do they support? Most importantly,
> would it be a HUGE pipe dream to think about building patterns a-la Akka
> (or even mixing actual Akka implementation) on top of OpenMPI via this Java
> bridge? What would be involved on the OpenMPI side? I have time/interest in
> going this route if there would be any hope of coming up with something
> that would make my life (and future people coming into HPC/MPI) easier in
> terms of building applications. I am not saying MPI in C/C++/Fortran should
> go away, however, sometimes we don't need the low-level stuff to express a
> concept :-). It may also open a whole new world for people on large
> clusters...
>
> Thank you!
>


Re: [OMPI users] MPI is still dominant paradigm?

2020-08-07 Thread Ralph Castain via users
The Java bindings were added specifically to support the Spark/Hadoop 
communities, so I see no reason why you couldn't use them for Akka or whatever. 
Note that there are also Python wrappers for MPI at mpi4py that you could build 
upon.

There is plenty of evidence out there for a general migration to higher-level 
programming blocks built on top of MPI, so I wouldn't call it a "pipe dream" at 
all.


> On Aug 7, 2020, at 5:26 AM, Oddo Da via users  
> wrote:
> 
> Hello,
> 
> This may be a bit of a longer post and I am not sure if it is even 
> appropriate here but I figured I ask. There are no hidden agendas in it, so 
> please treat it as "asking for opinions/advice", as opposed to judging or 
> provoking.
> 
> For the period between 2010 to 2017 I used to work in (buzzword alert!) "big 
> data" (meaning Spark, HDFS, reactive stuff like Akka) but way before that in 
> the early 2000s I used to write basic multithreaded C and some MPI code. I 
> came back to HPC/academia two years ago and what struck me was that (for lack 
> of better word) the field is still "stuck" (again, for lack of better word) 
> on MPI. This itself may seem negative in this context, however, I am just 
> stating my observation, which may be wrong.
> 
> I like low level programming and I like being in control of what is going on 
> but having had the experience in Spark and Akka, I kind of got spoiled. Yes, 
> I understand that the latter has fault-tolerance (which is nice) and MPI 
> doesn't (or at least, didn't when I played with in 1999-2005) but I always 
> felt like MPI needed higher level abstractions as a CHOICE (not _only_ 
> choice) laid over the bare metal offerings. The whole world has moved onto 
> programming in patterns and higher level abstractions, why is the 
> academic/HPC world stuck on bare metal, still? Yes, I understand that 
> performance often matters and the higher up you go, the more performance loss 
> you incur, however, there is also something to be said about developer time 
> and ease of understanding/abstracting etc. etc.
> 
> Be that as it may, I am working on a project now in the HPC world and I 
> noticed that Open MPI has Java bindings (or should I say "interface"?). What 
> is the state of those? Which JDK do they support? Most importantly, would it 
> be a HUGE pipe dream to think about building patterns a-la Akka (or even 
> mixing actual Akka implementation) on top of OpenMPI via this Java bridge? 
> What would be involved on the OpenMPI side? I have time/interest in going 
> this route if there would be any hope of coming up with something that would 
> make my life (and future people coming into HPC/MPI) easier in terms of 
> building applications. I am not saying MPI in C/C++/Fortran should go away, 
> however, sometimes we don't need the low-level stuff to express a concept 
> :-). It may also open a whole new world for people on large clusters...
> 
> Thank you!




[OMPI users] MPI is still dominant paradigm?

2020-08-07 Thread Oddo Da via users
Hello,

This may be a bit of a longer post and I am not sure if it is even
appropriate here but I figured I ask. There are no hidden agendas in it, so
please treat it as "asking for opinions/advice", as opposed to judging or
provoking.

For the period between 2010 to 2017 I used to work in (buzzword alert!)
"big data" (meaning Spark, HDFS, reactive stuff like Akka) but way before
that in the early 2000s I used to write basic multithreaded C and some MPI
code. I came back to HPC/academia two years ago and what struck me was that
(for lack of better word) the field is still "stuck" (again, for lack of
better word) on MPI. This itself may seem negative in this context,
however, I am just stating my observation, which may be wrong.

I like low level programming and I like being in control of what is going
on but having had the experience in Spark and Akka, I kind of got spoiled.
Yes, I understand that the latter has fault-tolerance (which is nice) and
MPI doesn't (or at least, didn't when I played with in 1999-2005) but I
always felt like MPI needed higher level abstractions as a CHOICE (not
_only_ choice) laid over the bare metal offerings. The whole world has
moved onto programming in patterns and higher level abstractions, why is
the academic/HPC world stuck on bare metal, still? Yes, I understand that
performance often matters and the higher up you go, the more performance
loss you incur, however, there is also something to be said about developer
time and ease of understanding/abstracting etc. etc.

Be that as it may, I am working on a project now in the HPC world and I
noticed that Open MPI has Java bindings (or should I say "interface"?).
What is the state of those? Which JDK do they support? Most importantly,
would it be a HUGE pipe dream to think about building patterns a-la Akka
(or even mixing actual Akka implementation) on top of OpenMPI via this Java
bridge? What would be involved on the OpenMPI side? I have time/interest in
going this route if there would be any hope of coming up with something
that would make my life (and future people coming into HPC/MPI) easier in
terms of building applications. I am not saying MPI in C/C++/Fortran should
go away, however, sometimes we don't need the low-level stuff to express a
concept :-). It may also open a whole new world for people on large
clusters...

Thank you!