Steven G. Johnson wrote:
On Jun 19, 2008, at 1:40 PM, matt wrote:
I discovered that this approach is incompatible with meep-mpi as-is. The h5math and file deletion needs to be run serially. I just output the files I need and use h5math from the command line, but that would require either a long h5math expression "d1*d1 + d2*d2 + ...", or a bash script which operates on two h5 files at a time.

I tried putting a (= 0 (meep-my-rank)) in the step function to serialize this, but then meep-mpi deadlocked as warned in the documentation.

Hi Matt,

Checking for (zero? (meep-my-rank)) should work, but you have to put it in the right place.

I suspect that you based your convert-complex-h5 function on the convert-h5 in an old version of Meep. If you look at convert-h5 in the latest version (0.10.1), you'll find that it looks like:

(define (convert-h5 rm? convert-cmd . step-funcs)
   (define (convert fname)
     (if (zero? (meep-my-rank))
(if (and (zero? (system (string-append convert-cmd " \"" fname "\"")))
                      rm?)
                .....)

where the check of meep-my-rank was inserted in Meep 0.10.1 precisely to serialize any conversion commands done on the output files.

Steven

_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss


Hi, everyone

I think, this file-based solution consumes lots of CPU time which is not suitable for some particular tasks such as far-field calculations, although manipulating fields in certain areas in meep-C++ is relatively easy
and fast.

Zheng
2008-6-20
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to