Discussion:
Fortran derived types and MPI
(too old to reply)
n***@cam.ac.uk
2009-08-18 10:24:13 UTC
Permalink
Re-repost - sorry. This is not my day. The others have been
cancelled, but some people may see them.

I am interested in surveying Fortran users of MPI to find out what
they would like to be able to do more conveniently, especially with
regard to derived types. Any suggestions as to other ways that I
could survey such people (Usenet is no longer as ubiquitous as it
used to be) would be welcomed. My Email address is real, so direct
messages will be received.

Specifically, I should like to know the answers to the following
questions:

1) Do you want to transfer Fortran derived types in MPI? I.e.
use them in contexts where currently MPI_INTEGER etc. are used?

2) Do you want to transfer Fortran derived types containing
allocatable or pointer arrays (i.e. derived types with components
that have sizes determined at run-time)?

3) Do you want to transfer Fortran derived types that contain
type-bound procedures (including finalizers)?

4) Do you want to receive data into allocatable or pointer
types that are NOT currently allocated, and have MPI do the
allocation for you?

5) Do you want to receive data into allocatable or pointer
types that ARE currently allocated, and have MPI reallocate them
to the new size for you?

Thank you for any responses.

Regards,
Nick Maclaren.
Tim Prince
2009-08-18 13:44:19 UTC
Permalink
Post by n***@cam.ac.uk
Re-repost - sorry. This is not my day. The others have been
cancelled, but some people may see them.
I am interested in surveying Fortran users of MPI to find out what
they would like to be able to do more conveniently, especially with
regard to derived types. Any suggestions as to other ways that I
could survey such people (Usenet is no longer as ubiquitous as it
used to be) would be welcomed. My Email address is real, so direct
messages will be received.
Specifically, I should like to know the answers to the following
1) Do you want to transfer Fortran derived types in MPI? I.e.
use them in contexts where currently MPI_INTEGER etc. are used?
2) Do you want to transfer Fortran derived types containing
allocatable or pointer arrays (i.e. derived types with components
that have sizes determined at run-time)?
3) Do you want to transfer Fortran derived types that contain
type-bound procedures (including finalizers)?
4) Do you want to receive data into allocatable or pointer
types that are NOT currently allocated, and have MPI do the
allocation for you?
5) Do you want to receive data into allocatable or pointer
types that ARE currently allocated, and have MPI reallocate them
to the new size for you?
Interesting questions. My customers are extremely conservative about
recent language features and would not consider such syntax even after
they became supported for all platforms in use. This would not happen
until all older machines such as Compaq Alpha and SGI Origin have died.
n***@cam.ac.uk
2009-08-18 13:56:55 UTC
Permalink
Post by Tim Prince
Interesting questions. My customers are extremely conservative about
recent language features and would not consider such syntax even after
they became supported for all platforms in use. This would not happen
until all older machines such as Compaq Alpha and SGI Origin have died.
Yes. But such users are simple - just preserve the old interface
as an option, until the users time out.


Regards,
Nick Maclaren.
Craig Powers
2009-08-18 15:16:55 UTC
Permalink
Post by n***@cam.ac.uk
Re-repost - sorry. This is not my day. The others have been
cancelled, but some people may see them.
I am interested in surveying Fortran users of MPI to find out what
they would like to be able to do more conveniently, especially with
regard to derived types. Any suggestions as to other ways that I
could survey such people (Usenet is no longer as ubiquitous as it
used to be) would be welcomed. My Email address is real, so direct
messages will be received.
Specifically, I should like to know the answers to the following
1) Do you want to transfer Fortran derived types in MPI? I.e.
use them in contexts where currently MPI_INTEGER etc. are used?
I have MPI code that does this now, using a combination of
MPI_GET_ADDRESS and MPI_CREATE_TYPE. (It's not a SEQUENCE nor a BIND(C)
type, so I may be dancing on the edge of a knife with the code, but I
didn't have any trouble with it when I was still using it.)
Post by n***@cam.ac.uk
2) Do you want to transfer Fortran derived types containing
allocatable or pointer arrays (i.e. derived types with components
that have sizes determined at run-time)?
It would be nice to be able to do this, although I don't think I have a
direct need for it in current code.
Post by n***@cam.ac.uk
3) Do you want to transfer Fortran derived types that contain
type-bound procedures (including finalizers)?
This is not something I foresee doing in the near future, as type-bound
procedures are still relatively new from the point of view of
availability in widely-used compilers.
Post by n***@cam.ac.uk
4) Do you want to receive data into allocatable or pointer
types that are NOT currently allocated, and have MPI do the
allocation for you?
I can't say for certain whether this would be useful.
Post by n***@cam.ac.uk
5) Do you want to receive data into allocatable or pointer
types that ARE currently allocated, and have MPI reallocate them
to the new size for you?
I can't say for certain whether this would be useful.


My MPI code is a Monte Carlo and molecular dynamics classical molecular
simulation code. It uses MPI for replica exchange and for distributing
force calculations.
Paul van Delst
2009-08-20 16:30:29 UTC
Permalink
Post by n***@cam.ac.uk
Re-repost - sorry. This is not my day. The others have been
cancelled, but some people may see them.
I am interested in surveying Fortran users of MPI to find out what
they would like to be able to do more conveniently, especially with
regard to derived types. Any suggestions as to other ways that I
could survey such people (Usenet is no longer as ubiquitous as it
used to be) would be welcomed. My Email address is real, so direct
messages will be received.
Specifically, I should like to know the answers to the following
1) Do you want to transfer Fortran derived types in MPI? I.e.
use them in contexts where currently MPI_INTEGER etc. are used?
Yes. Definitely.
Post by n***@cam.ac.uk
2) Do you want to transfer Fortran derived types containing
allocatable or pointer arrays (i.e. derived types with components
that have sizes determined at run-time)?
Yes. Most definitely. Nearly all my derived types contain POINTER components (although I'm
starting the shift to ALLOCATABLE).
Post by n***@cam.ac.uk
3) Do you want to transfer Fortran derived types that contain
type-bound procedures (including finalizers)?
Yes. Once I shift my codes fully to f2003 I intend to make as much use of type-bound
procedures as I can. My f2003 test machine is an IBM system that runs heavily-MPI'd code
24/7/365.
Post by n***@cam.ac.uk
4) Do you want to receive data into allocatable or pointer
types that are NOT currently allocated, and have MPI do the
allocation for you?
Maybe.
Post by n***@cam.ac.uk
5) Do you want to receive data into allocatable or pointer
types that ARE currently allocated, and have MPI reallocate them
to the new size for you?
Again, maybe.

The last two are answers based on a defensive programming style rather than any actual
experience - hence the wavering. If it's feasible, I would like the option to specify that
(re)allocations *not* be done for analysis
Post by n***@cam.ac.uk
Thank you for any responses.
No worries.

cheers,

paulv
Colin Watters
2009-08-26 06:27:54 UTC
Permalink
At present I do not use MPI, but my group are evaluating options on how
best to parallelize our code, and MPI is very likley to be used, so FWIW
here's my opinions. At present none of us do parallel.

1. yes
2. yes
3. We don't use TBPs currently (must read up to find out what problems
they solve) so best answer is 'not right now'
4. yes
5. yes
--
Qolin

Email: my qname at domain dot com
Domain: qomputing
Post by n***@cam.ac.uk
Re-repost - sorry. This is not my day. The others have been
cancelled, but some people may see them.
I am interested in surveying Fortran users of MPI to find out what
they would like to be able to do more conveniently, especially with
regard to derived types. Any suggestions as to other ways that I
could survey such people (Usenet is no longer as ubiquitous as it
used to be) would be welcomed. My Email address is real, so direct
messages will be received.
Specifically, I should like to know the answers to the following
1) Do you want to transfer Fortran derived types in MPI? I.e.
use them in contexts where currently MPI_INTEGER etc. are used?
2) Do you want to transfer Fortran derived types containing
allocatable or pointer arrays (i.e. derived types with components
that have sizes determined at run-time)?
3) Do you want to transfer Fortran derived types that contain
type-bound procedures (including finalizers)?
4) Do you want to receive data into allocatable or pointer
types that are NOT currently allocated, and have MPI do the
allocation for you?
5) Do you want to receive data into allocatable or pointer
types that ARE currently allocated, and have MPI reallocate them
to the new size for you?
Thank you for any responses.
Regards,
Nick Maclaren.
Loading...