[Octopus-users] fixing pes_rc_output, pes_rc_doit etc. for parallel runs
matthieu verstraete
matthieu.jean.verstraete at gmail.com
Fri Apr 24 12:36:34 WEST 2009
Hi Giacomo,
no idea about octopus' internals for parallelism, but I think the
strategy should be to send all points (there shouldn't be that many)
to the main node for output. We're talking about a few dozen scalar or
complex values of wf at given points, for each time step, which is
very little data to send. If you are ok with inserting the MPI calls,
all the better!
Matthieu
On Fri, Apr 24, 2009 at 1:08 PM, Giacomo Mulas
<gmulas at oa-cagliari.inaf.it> wrote:
> Hi Miguel, Matthieu.
>
> After some experimenting, apparently I got the PES rc code to work, but only
> in serial mode. Now, upon looking at the code, it seems it was written when
> octopus only did parallelism in states: it assumes all nodes have the
> wavefuntions over all the mesh, while with parallelisation in domains this
> is
> false.
>
> So, first question is: in a parallel run do you prefer all i/o to be handled
> by the root node, i.e. the one with mpi rank 0? Or should every node
> handle its own share of i/o? In practice, in this case, I want to dump to a
> file the wavefunction(s) at a given grid point, in a time evolution (that's
> what PES_rc code is supposed to do). Indeed, in PES_rc_init the coordinates
> of the PES_rc points are parsed from the inp file, and for each of them the
> closest mesh point is found and its number stored. Should each node take
> care to output to disk the information it has? I.e. for parallel in domain
> runs, should each node dump the mesh points it has? Or should process 0
> collect the data and only process 0 should write to disk? The first
> solution poses the problem of several processes attempting to simultaneously
> write to the same file, which would require either some complicated locking
> or splitting everything in a separate file for each node. The second
> solution poses the problem of wasting some time at each iteration to send
> all data to the root node, with appropriate MPI calls.
>
> Whatever you prefer, I am willing to try to implement it, but I will need
> some help with the octopus' data structures (e.g. answering some practical
> questions like: how do I know whether a given mesh point is contained in the
> running process or not? how do I know which process has it?).
>
> Thanks in advance, ciao
> Giacomo
>
> --
> _________________________________________________________________
>
> Giacomo Mulas <gmulas at oa-cagliari.inaf.it>
> _________________________________________________________________
>
> OSSERVATORIO ASTRONOMICO DI CAGLIARI
> Str. 54, Loc. Poggio dei Pini * 09012 Capoterra (CA)
>
> Tel. (OAC): +39 070 71180 248 Fax : +39 070 71180 222
> Tel. (UNICA): +39 070 675 4916
> _________________________________________________________________
>
> "When the storms are raging around you, stay right where you are"
> (Freddy Mercury)
> _________________________________________________________________
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dr. Matthieu Verstraete
European Theoretical Spectroscopy Facility (ETSF)
Dpto. Fisica de Materiales,
U. del Pais Vasco,
Centro Joxe Mari Korta, Av. de Tolosa, 72, Phone: +34-943018393
E-20018 Donostia-San Sebastian, Spain Fax : +34-943018390
Mail : matthieu.jean.verstraete at gmail.com
http://www-users.york.ac.uk/~mjv500
More information about the Octopus-users
mailing list