Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7441149
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T10:57:54+00:00 2026-05-29T10:57:54+00:00

I am using MPI calls to run a procedure on multiple processes using c++.

  • 0

I am using MPI calls to run a procedure on multiple processes using c++.
The first few lines in my Main function look like:

int main(int argc, char *argv[]){
int comm_sz;
int my_rank;

MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &comm_sz);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);

x = atoi(argv[4]);
y = atoi(argv[5]);

Now when I execute and run my program using

mpiexec -n 1 program 10 10

I want x and y to be assigned the values 10 and 10, as they are the 4 and 5th arguments passed.
But this isn’t happening and it assigns these variables to 0 and 0 accordingly. and my program does not run as desired.

I have my serial code running when I change these numbers. Its just that I am new to MPI.

Can you suggest where am I going wrong?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T10:57:55+00:00Added an answer on May 29, 2026 at 10:57 am

    In most MPI implementations on Linux/Windows/Mac OSX, when you call MPI_Init(&argc, &argv), the argument list is modified just as if you had run the serial problem as program 10 10; it eats the argument list up to the executable, which can potentially contain any number of options to the mpirun command itself.

    The standard doesn’t specify this; the standard leaves a lot of things about launching processes and the initialization process somewhat vague, as MPI has to work on systems that behave very differently than POSIX-type systems. But I’ve never seen an MPI implementation in a POSIX-type environment that doesn’t do this.

    (Updated to add:) g.inozemtsev ‘s comment on the question is an excellent, concise explanation as to why this happens.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Say, I run a parallel program using MPI. Execution command mpirun -n 8 -npernode
First time using MPI outside some simple practice apps, and something's not going right.
I'm starting work on some simulations using MPI and want to do the programming
I've got a one to all broadcast method for a hypercube, written using MPI:
I have some parallel code (implemented using MPI) that needs to be documented. I'd
I want to sort array of random numbers using MPI library. The idea is
I'm using CentOS 5.4 x86_64 and Boost 1.42.0 on a cluster that uses Open-MPI
My unix/windows C++ app is already parallelized using MPI: the job is splitted in
I'm doing a research about gpu in cluster environments using mpi to communicate. In
I am new to linux development. I wrote a project using MPI and cuda.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.