I wonder about 2 things:
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.