If someone is deciding whether to use complex datatypes or stick with contiguous ones, they need to look at their own situation. There is no simple answer. The only thing that is fully predictable is that an MPI operation, measured in isolation, will be no slower with contiguous data than with discontiguous.
The question for a particular application is: in the application context, how does the performance with this discontiguous datatype compare with the performance I get with other solutions?" The other solutions include anything your application must do to allow it to use contiguous datatypes. (most often, packing & unpacking) The water gets even more muddy when you consider that each MPI implementation has differences in how it processes discontiguous data and even a single MPI (like OpenMPI) could have different underlying trade offs, depending on the capabilities of the underlying hardware. It should not matter whether the program is written in C or Fortran. The cost of processing a discontiguous datatype is tied to the layout of the data in memory and both languages can produce equally simple or complex memory layouts. Dick Treumann - MPI Team IBM Systems & Technology Group Dept X2ZA / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601 Tele (845) 433-7846 Fax (845) 433-8363 |------------> | From: | |------------> >------------------------------------------------------------------------------------------------------------------------------------------------| |"Cole, Derek E" <derek.e.c...@lmco.com> | >------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | To: | |------------> >------------------------------------------------------------------------------------------------------------------------------------------------| |Open MPI Users <us...@open-mpi.org> | >------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Date: | |------------> >------------------------------------------------------------------------------------------------------------------------------------------------| |05/07/2010 08:21 AM | >------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Subject: | |------------> >------------------------------------------------------------------------------------------------------------------------------------------------| |Re: [OMPI users] Fortran derived types | >------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Sent by: | |------------> >------------------------------------------------------------------------------------------------------------------------------------------------| |users-boun...@open-mpi.org | >------------------------------------------------------------------------------------------------------------------------------------------------| I don't have any hard numbers for fortran, but I do for C structures. Using C structures with some other C functionality (pointer functions, etc etc) can yield up to a 3x slowdown at worst, and at best, had a 15% slowdown. I have seen similar results in fortran, but don't have the benchmark results for it. In either language, nothing beats raw data types for performance. Just my .02, I know some out there may not agree. Derek -----Original Message----- From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On Behalf Of Terry Frankcombe Sent: Thursday, May 06, 2010 12:24 AM To: Open MPI Users Subject: Re: [OMPI users] Fortran derived types Hi Derek On Wed, 2010-05-05 at 13:05 -0400, Cole, Derek E wrote: > In general, even in your serial fortran code, you're already taking a > performance hit using a derived type. Do you have any numbers to back that up? Ciao Terry _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users