Re: [OMPI users] MPI is still dominant paradigm?
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?
"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?
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?
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!