My application is sequential and I want to make it parallel. Hence I want to check if I am in MPI environment or not to adapt to parallel processing.
How can I detect if my application is started by MS MPI mpiexec?
371 Views Asked by Sanjaya At
1
There are 1 best solutions below
Related Questions in MS-MPI
- Can't make MSMPI to work. It always says "mpi.h: No such file or directory gcc"
- Visual Studio Code for some reason changes '\' with '/' in Include Path
- In the latest version of MSMPI there's no msmpi.dll
- Using a DLL with MS-MPI Program
- Matrix multiplication using serial and parallel algorithm with c++ and MPI
- C++ Matrix multiplication program with MPI using serial algorithm and another one using parallel version
- mpi application performace get worse when adding more process
- Why does the "MPI_Comm_split" funtion always fail to split them into different subcommunicators?
- Fatal error in MPI_Bcast: Message truncated, error stack
- MPI on Windows: how to detect available library and processor count
- Usage of all available threads for OMP inside Master MPI only part - hybrid parallel programming
- Difference between MPICH and MS MPI
- mpi4py conflicts with MS-MPI (msmpi.dll) on Anaconda3
- Running OpenFOAM native compile on a non-admin Windows
- How to prevent local msmpi installation from loading system wide msmpi.dll
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Sequential application is a special case of a parallel application (when number of processes = 1), so you should not need any special adaptation. Just call
MPI_Initand, as suggested in the comments, determine the communicator size.Some MPI implementations (e.g., Open MPI and MS MPI) allow you execute your program directly, without
mpiexec, and still the call toMPI_Initwill not fail, so your parallel application can then be used equally well as a serial one.To actually detect whether your application is really executed using
mpiexec, you can typically inspect the environment variables. I used the following program to print the environment variables of my Windows application (linked to MS MPI v10):When I execute the application using
mpiexec -n 1, I see that several new environment variables are set on top of those already present when not using the launcher:Hence, presence of these environment variables may indicate use of MS MPI. Similarly, presence of
OMPI_COMM_WORLD_SIZEwould indicate use of Open MPI. Etc.