简体   繁体   中英

How workspace is shared in MPI?

I wonder about 2 things:

  • when I ran my app on mpi cluster made from 3 computers is it ran from some shared virtual directory or I have row access to some dir/some folder on each computer my app is ran on?
  • is my programm uses lots of shared libraries and tipically when I ran it on one computer I call export LD_LIBRARY_PATH=./:./libs_boost/ how to make my .so libs be shared with that other machins with out sharing whole directory? Is it possible to say something like mpiexec -n24 -share_files_across_machines=./file1.so:./lib_boost/**:./some_other_not_lib_file.txt ?

MPI makes no assumptions about how files are shared/distributed to all participating nodes. This is totally a matter of local configuration, so you cannot get a general answer: you have to see how your cluster is configured (ask your system administrator?).

More specifically:

  • an MPI process is still a regular UNIX (or Windows) process: so your application can use whatever operating system call to access the local filesystem or a shared network filesystem (if present).

  • on clusters that do not provide a shared directory, you can use scp to copy the required startup files (eg, libraries) to the other nodes and similarly collect back output files. (It's better to automate this with a shell script.)

  • Some applications allow you to specify which node(s) can do I/O: all other nodes will receive input data through the MPI communication channels from processes running on the designated I/O nodes. (This won't work with the libraries, though, as they are loaded by the operating system before launching the MPI process.)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM