1 In the 'bin' directory containing mpif90, the following command shows ifort is used.
$./mpif90 -v

mpifort for MPICH version 3.1.2

ifort version 14.0.3

2 ifort -mcmodel=medium won't work. 

Since large array could not work with mpich in my computer,
I downloaded openmpi and now it is working fine. The parallel code being modified from the serial
version
is now working.

Thank you for your attention


On Mon, Oct 20, 2014 at 8:35 PM, <devel-request@mpich.org> wrote:
Send devel mailing list submissions to
        devel@mpich.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.mpich.org/mailman/listinfo/devel
or, via email, send a message with subject or body 'help' to
        devel-request@mpich.org

You can reach the person managing the list at
        devel-owner@mpich.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of devel digest..."


Today's Topics:

   1. Re: 
mpich -mcmodel=medium (Junchao Zhang)
   2.  new tutorial books on MPI (Rajeev Thakur)
   3.  proper way to detect if program launched by mpiexec?
      (Jeff Hammond)
   4. Re:  proper way to detect if program launched by mpiexec?
      (Balaji, Pavan)
   5. Re:  proper way to detect if program launched by  mpiexec?
      (Jeff Hammond)
   6. Re:  proper way to detect if program launched by  mpiexec?
      (Rob Latham)
   7. Re:  proper way to detect if program launched     by      mpiexec?
      (Balaji, Pavan)
   8. Re:  proper way to detect if program launched by  mpiexec?
      (Jeff Hammond)


----------------------------------------------------------------------

Message: 1
Date: Wed, 8 Oct 2014 08:57:34 -0500
From: Junchao Zhang <jczhang@mcs.anl.gov>
To: "<devel@mpich.org>" <devel@mpich.org>
Subject: Re: [mpich-devel] mpich -mcmodel=medium
Message-ID:
        <CA+MQGp-=+_aK83ef4zdteyckS1nrX8nPQu2XB1yEmeHHWOrEQA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Did you build mpich with Intel compilers?
Have you tried to use -mcmodel=large for a non-mpi program and compiled it
with ifort?

--Junchao Zhang

On Wed, Oct 8, 2014 at 8:02 AM, WeiGuang He <c212heweiguang@gmail.com>
wrote:

> Hello, madam/sir
> It seems that "-mcmodel=medium" is not supported by mpif90 (I installed
> the latest mpich).
> How could I use large array?
>
> mpif90 mtestf90.f90 winfencef90.f90 -o abc -assume byterecl -shared-intel
> -mcmodel=large -fPIC
>
> %% The output is
>
> ./abc: symbol lookup error: ./abc: undefined symbol:
> __intel_new_feature_proc_init
>
> ./abc: symbol lookup error: ./abc: undefined symbol:
> __intel_new_feature_proc_init
>
>
>
> ===================================================================================
>
> =   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
>
> =   PID 27182 RUNNING AT lgmiris
>
> =   EXIT CODE: 127
>
> =   CLEANING UP REMAINING PROCESSES
>
> =   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
>
>
> ===================================================================================
>
> Best Regards
> Weiguang HE
>
> _______________________________________________
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/devel/attachments/20141008/aa6e1087/attachment-0001.html>

------------------------------

Message: 2
Date: Mon, 13 Oct 2014 19:06:06 -0500
From: Rajeev Thakur <thakur@mcs.anl.gov>
To: Main MPI Forum mailing list <mpi-forum@lists.mpi-forum.org>,
        "<discuss@mpich.org>" <discuss@mpich.org>, "<devel@mpich.org>"
        <devel@mpich.org>, <users@open-mpi.org>
Subject: [mpich-devel] new tutorial books on MPI
Message-ID: <C7704A78-86D4-4AD8-A759-BEA582AC984B@mcs.anl.gov>
Content-Type: text/plain; charset="us-ascii"

Since many of you are interested in MPI, I wanted to bring to your attention two new tutorial books on MPI:

1. Using MPI: Portable Parallel Programming with the Message-Passing Interface, 3rd edition
   by William Gropp, Ewing Lusk, and Anthony Skjellum
   This is an updated version of their earlier book, and covers basic MPI.
   http://www.amazon.com/Using-MPI-Programming-Message-Passing-Engineering/dp/0262527391/

2. Using Advanced MPI: Modern Features of the Message-Passing Interface
   by William Gropp, Torsten Hoefler, Rajeev Thakur, and Ewing Lusk
   This is a new book on advanced features of MPI, including the new features in MPI-3.
   http://www.amazon.com/Using-Advanced-MPI-Message-Passing-Engineering/dp/0262527634/

Rajeev



------------------------------

Message: 3
Date: Mon, 20 Oct 2014 09:34:09 -0700
From: Jeff Hammond <jeff.science@gmail.com>
To: MPICH <devel@mpich.org>
Subject: [mpich-devel] proper way to detect if program launched by
        mpiexec?
Message-ID:
        <CAGKz=uLRA7mUPdmgz4yNpmnP_O55-dzQxpqHfhmQTXsMeQR+FQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

I wrote a trivial program that uses MPI_Comm_spawn.  It works when I
launch with mpiexec but not if I run directly.

1) Is this a bug in MPICH?
2) What is the proper way for the program to detect how the program
was launched?  I would like to provide a helpful warning message...

Thanks!

Jeff

jrhammon-mac01:comm_spawn jrhammon$ ./parent
I am 0 of 1 for the parent program.
[mpiexec@jrhammon-mac01.local] match_arg
(../../../../src/pm/hydra/utils/args/args.c:159): unrecognized
argument pmi_args
[mpiexec@jrhammon-mac01.local] HYDU_parse_array
(../../../../src/pm/hydra/utils/args/args.c:174): argument matching
returned error
[mpiexec@jrhammon-mac01.local] parse_args
(../../../../src/pm/hydra/ui/mpich/utils.c:1596): error parsing input
array
[mpiexec@jrhammon-mac01.local] HYD_uii_mpx_get_parameters
(../../../../src/pm/hydra/ui/mpich/utils.c:1648): unable to parse user
arguments
[mpiexec@jrhammon-mac01.local] main
(../../../../src/pm/hydra/ui/mpich/mpiexec.c:153): error parsing
parameters
^C

jrhammon-mac01:comm_spawn jrhammon$ mpiexec -n 1 ./parent
I am 0 of 1 for the parent program.
I am 0 of 1 for the child program.

==> parent.c <==
#include <stdio.h>
#include <mpi.h>

int main(int argc, char * argv[])
{
    MPI_Init(&argc,&argv);

    int size, rank;
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    printf("I am %d of %d for the parent program.\n", rank, size);

    MPI_Comm intercomm;
    int errors[size];
    MPI_Comm_spawn( (char*)"./child", MPI_ARGV_NULL, 1, MPI_INFO_NULL,
0 /* root */, MPI_COMM_WORLD, &intercomm, errors);

    MPI_Finalize();
    return 0;
}

==> child.c <==
#include <stdio.h>
#include <mpi.h>

int main(int argc, char * argv[])
{
    MPI_Init(&argc,&argv);

    int size, rank;
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    printf("I am %d of %d for the child program.\n", rank, size);

    MPI_Finalize();
    return 0;
}

==> Makefile <==
CC      = mpicc
CFLAGS  = -g -O2 -Wall -std=c99

LD      = $(CC)
LDFLAGS = $(COPT)

LIBS =

TESTS= parent child

all: $(TESTS)

%: %.o
        $(CC) $(CFLAGS) $< $(LIBS) -o $@

clean:
        -rm -f *.o
        -rm -f $(TESTS)

--
Jeff Hammond
jeff.science@gmail.com
http://jeffhammond.github.io/


------------------------------

Message: 4
Date: Mon, 20 Oct 2014 16:44:33 +0000
From: "Balaji, Pavan" <balaji@anl.gov>
To: "devel@mpich.org" <devel@mpich.org>
Subject: Re: [mpich-devel] proper way to detect if program launched by
        mpiexec?
Message-ID: <78272895-503A-4540-8F46-FE165CC34898@anl.gov>
Content-Type: text/plain; charset="utf-8"


This is a known issue with MPICH.  There?s no portable way to detect this, but for MPICH you can look for PMI variables in the environment.

  ? Pavan

> On Oct 20, 2014, at 11:34 AM, Jeff Hammond <jeff.science@gmail.com> wrote:
>
> I wrote a trivial program that uses MPI_Comm_spawn.  It works when I
> launch with mpiexec but not if I run directly.
>
> 1) Is this a bug in MPICH?
> 2) What is the proper way for the program to detect how the program
> was launched?  I would like to provide a helpful warning message...
>
> Thanks!
>
> Jeff
>
> jrhammon-mac01:comm_spawn jrhammon$ ./parent
> I am 0 of 1 for the parent program.
> [mpiexec@jrhammon-mac01.local] match_arg
> (../../../../src/pm/hydra/utils/args/args.c:159): unrecognized
> argument pmi_args
> [mpiexec@jrhammon-mac01.local] HYDU_parse_array
> (../../../../src/pm/hydra/utils/args/args.c:174): argument matching
> returned error
> [mpiexec@jrhammon-mac01.local] parse_args
> (../../../../src/pm/hydra/ui/mpich/utils.c:1596): error parsing input
> array
> [mpiexec@jrhammon-mac01.local] HYD_uii_mpx_get_parameters
> (../../../../src/pm/hydra/ui/mpich/utils.c:1648): unable to parse user
> arguments
> [mpiexec@jrhammon-mac01.local] main
> (../../../../src/pm/hydra/ui/mpich/mpiexec.c:153): error parsing
> parameters
> ^C
>
> jrhammon-mac01:comm_spawn jrhammon$ mpiexec -n 1 ./parent
> I am 0 of 1 for the parent program.
> I am 0 of 1 for the child program.
>
> ==> parent.c <==
> #include <stdio.h>
> #include <mpi.h>
>
> int main(int argc, char * argv[])
> {
>    MPI_Init(&argc,&argv);
>
>    int size, rank;
>    MPI_Comm_size(MPI_COMM_WORLD, &size);
>    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>
>    printf("I am %d of %d for the parent program.\n", rank, size);
>
>    MPI_Comm intercomm;
>    int errors[size];
>    MPI_Comm_spawn( (char*)"./child", MPI_ARGV_NULL, 1, MPI_INFO_NULL,
> 0 /* root */, MPI_COMM_WORLD, &intercomm, errors);
>
>    MPI_Finalize();
>    return 0;
> }
>
> ==> child.c <==
> #include <stdio.h>
> #include <mpi.h>
>
> int main(int argc, char * argv[])
> {
>    MPI_Init(&argc,&argv);
>
>    int size, rank;
>    MPI_Comm_size(MPI_COMM_WORLD, &size);
>    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>
>    printf("I am %d of %d for the child program.\n", rank, size);
>
>    MPI_Finalize();
>    return 0;
> }
>
> ==> Makefile <==
> CC      = mpicc
> CFLAGS  = -g -O2 -Wall -std=c99
>
> LD      = $(CC)
> LDFLAGS = $(COPT)
>
> LIBS =
>
> TESTS= parent child
>
> all: $(TESTS)
>
> %: %.o
>       $(CC) $(CFLAGS) $< $(LIBS) -o $@
>
> clean:
>       -rm -f *.o
>       -rm -f $(TESTS)
>
> --
> Jeff Hammond
> jeff.science@gmail.com
> http://jeffhammond.github.io/
> _______________________________________________
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/devel

--
Pavan Balaji  ??
http://www.mcs.anl.gov/~balaji


------------------------------

Message: 5
Date: Mon, 20 Oct 2014 10:43:16 -0700
From: Jeff Hammond <jeff.science@gmail.com>
To: devel@mpich.org
Subject: Re: [mpich-devel] proper way to detect if program launched by
        mpiexec?
Message-ID:
        <CAGKz=uLgNkZy2gD7H=V4ftHYkn=VD3ySPSnjQcDDL4-raqpeOA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Is this because MPICH can't spawn processes except through
PMI/Hydra/whatever and you - justifiably - do not want to implement a
special case workaround using execvp() directly?

Jeff

On Mon, Oct 20, 2014 at 9:44 AM, Balaji, Pavan <balaji@anl.gov> wrote:
>
> This is a known issue with MPICH.  There?s no portable way to detect this, but for MPICH you can look for PMI variables in the environment.
>
>   ? Pavan
>
>> On Oct 20, 2014, at 11:34 AM, Jeff Hammond <jeff.science@gmail.com> wrote:
>>
>> I wrote a trivial program that uses MPI_Comm_spawn.  It works when I
>> launch with mpiexec but not if I run directly.
>>
>> 1) Is this a bug in MPICH?
>> 2) What is the proper way for the program to detect how the program
>> was launched?  I would like to provide a helpful warning message...
>>
>> Thanks!
>>
>> Jeff
>>
>> jrhammon-mac01:comm_spawn jrhammon$ ./parent
>> I am 0 of 1 for the parent program.
>> [mpiexec@jrhammon-mac01.local] match_arg
>> (../../../../src/pm/hydra/utils/args/args.c:159): unrecognized
>> argument pmi_args
>> [mpiexec@jrhammon-mac01.local] HYDU_parse_array
>> (../../../../src/pm/hydra/utils/args/args.c:174): argument matching
>> returned error
>> [mpiexec@jrhammon-mac01.local] parse_args
>> (../../../../src/pm/hydra/ui/mpich/utils.c:1596): error parsing input
>> array
>> [mpiexec@jrhammon-mac01.local] HYD_uii_mpx_get_parameters
>> (../../../../src/pm/hydra/ui/mpich/utils.c:1648): unable to parse user
>> arguments
>> [mpiexec@jrhammon-mac01.local] main
>> (../../../../src/pm/hydra/ui/mpich/mpiexec.c:153): error parsing
>> parameters
>> ^C
>>
>> jrhammon-mac01:comm_spawn jrhammon$ mpiexec -n 1 ./parent
>> I am 0 of 1 for the parent program.
>> I am 0 of 1 for the child program.
>>
>> ==> parent.c <==
>> #include <stdio.h>
>> #include <mpi.h>
>>
>> int main(int argc, char * argv[])
>> {
>>    MPI_Init(&argc,&argv);
>>
>>    int size, rank;
>>    MPI_Comm_size(MPI_COMM_WORLD, &size);
>>    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>>
>>    printf("I am %d of %d for the parent program.\n", rank, size);
>>
>>    MPI_Comm intercomm;
>>    int errors[size];
>>    MPI_Comm_spawn( (char*)"./child", MPI_ARGV_NULL, 1, MPI_INFO_NULL,
>> 0 /* root */, MPI_COMM_WORLD, &intercomm, errors);
>>
>>    MPI_Finalize();
>>    return 0;
>> }
>>
>> ==> child.c <==
>> #include <stdio.h>
>> #include <mpi.h>
>>
>> int main(int argc, char * argv[])
>> {
>>    MPI_Init(&argc,&argv);
>>
>>    int size, rank;
>>    MPI_Comm_size(MPI_COMM_WORLD, &size);
>>    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>>
>>    printf("I am %d of %d for the child program.\n", rank, size);
>>
>>    MPI_Finalize();
>>    return 0;
>> }
>>
>> ==> Makefile <==
>> CC      = mpicc
>> CFLAGS  = -g -O2 -Wall -std=c99
>>
>> LD      = $(CC)
>> LDFLAGS = $(COPT)
>>
>> LIBS =
>>
>> TESTS= parent child
>>
>> all: $(TESTS)
>>
>> %: %.o
>>       $(CC) $(CFLAGS) $< $(LIBS) -o $@
>>
>> clean:
>>       -rm -f *.o
>>       -rm -f $(TESTS)
>>
>> --
>> Jeff Hammond
>> jeff.science@gmail.com
>> http://jeffhammond.github.io/
>> _______________________________________________
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/devel
>
> --
> Pavan Balaji  ??
> http://www.mcs.anl.gov/~balaji
>
> _______________________________________________
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/devel



--
Jeff Hammond
jeff.science@gmail.com
http://jeffhammond.github.io/


------------------------------

Message: 6
Date: Mon, 20 Oct 2014 12:48:01 -0500
From: Rob Latham <robl@mcs.anl.gov>
To: <devel@mpich.org>
Subject: Re: [mpich-devel] proper way to detect if program launched by
        mpiexec?
Message-ID: <54454AD1.9010305@mcs.anl.gov>
Content-Type: text/plain; charset="windows-1252"; format=flowed



On 10/20/2014 11:34 AM, Jeff Hammond wrote:
> I wrote a trivial program that uses MPI_Comm_spawn.  It works when I
> launch with mpiexec but not if I run directly.
>
> 1) Is this a bug in MPICH?

http://trac.mpich.org/projects/mpich/ticket/2175

==rob


> 2) What is the proper way for the program to detect how the program
> was launched?  I would like to provide a helpful warning message...
>
> Thanks!
>
> Jeff
>
> jrhammon-mac01:comm_spawn jrhammon$ ./parent
> I am 0 of 1 for the parent program.
> [mpiexec@jrhammon-mac01.local] match_arg
> (../../../../src/pm/hydra/utils/args/args.c:159): unrecognized
> argument pmi_args
> [mpiexec@jrhammon-mac01.local] HYDU_parse_array
> (../../../../src/pm/hydra/utils/args/args.c:174): argument matching
> returned error
> [mpiexec@jrhammon-mac01.local] parse_args
> (../../../../src/pm/hydra/ui/mpich/utils.c:1596): error parsing input
> array
> [mpiexec@jrhammon-mac01.local] HYD_uii_mpx_get_parameters
> (../../../../src/pm/hydra/ui/mpich/utils.c:1648): unable to parse user
> arguments
> [mpiexec@jrhammon-mac01.local] main
> (../../../../src/pm/hydra/ui/mpich/mpiexec.c:153): error parsing
> parameters
> ^C
>
> jrhammon-mac01:comm_spawn jrhammon$ mpiexec -n 1 ./parent
> I am 0 of 1 for the parent program.
> I am 0 of 1 for the child program.
>
> ==> parent.c <==
> #include <stdio.h>
> #include <mpi.h>
>
> int main(int argc, char * argv[])
> {
>      MPI_Init(&argc,&argv);
>
>      int size, rank;
>      MPI_Comm_size(MPI_COMM_WORLD, &size);
>      MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>
>      printf("I am %d of %d for the parent program.\n", rank, size);
>
>      MPI_Comm intercomm;
>      int errors[size];
>      MPI_Comm_spawn( (char*)"./child", MPI_ARGV_NULL, 1, MPI_INFO_NULL,
> 0 /* root */, MPI_COMM_WORLD, &intercomm, errors);
>
>      MPI_Finalize();
>      return 0;
> }
>
> ==> child.c <==
> #include <stdio.h>
> #include <mpi.h>
>
> int main(int argc, char * argv[])
> {
>      MPI_Init(&argc,&argv);
>
>      int size, rank;
>      MPI_Comm_size(MPI_COMM_WORLD, &size);
>      MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>
>      printf("I am %d of %d for the child program.\n", rank, size);
>
>      MPI_Finalize();
>      return 0;
> }
>
> ==> Makefile <==
> CC      = mpicc
> CFLAGS  = -g -O2 -Wall -std=c99
>
> LD      = $(CC)
> LDFLAGS = $(COPT)
>
> LIBS =
>
> TESTS= parent child
>
> all: $(TESTS)
>
> %: %.o
>       $(CC) $(CFLAGS) $< $(LIBS) -o $@
>
> clean:
>       -rm -f *.o
>       -rm -f $(TESTS)
>

--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA


------------------------------

Message: 7
Date: Mon, 20 Oct 2014 18:15:21 +0000
From: "Balaji, Pavan" <balaji@anl.gov>
To: "devel@mpich.org" <devel@mpich.org>
Subject: Re: [mpich-devel] proper way to detect if program launched     by
        mpiexec?
Message-ID: <14724BDF-D159-45C8-A27D-D2BA94C01C73@anl.gov>
Content-Type: text/plain; charset="utf-8"


> On Oct 20, 2014, at 12:43 PM, Jeff Hammond <jeff.science@gmail.com> wrote:
> Is this because MPICH can't spawn processes except through
> PMI/Hydra/whatever and you - justifiably - do not want to implement a
> special case workaround using execvp() directly?

The new process needs a way to query for business cards and such, for which mpiexec is needed.  So the current design of singleton init is to spawn mpiexec and connect to it.  That?s a mess and is not clearly specified by the PMI spec.  My suggestion was to execvp the executable ?mpiexec? with the right arguments to relaunch the application again, but there are some problems with that:

        http://trac.mpich.org/projects/mpich/ticket/1074

  ? Pavan

--
Pavan Balaji  ??
http://www.mcs.anl.gov/~balaji


------------------------------

Message: 8
Date: Mon, 20 Oct 2014 11:35:19 -0700
From: Jeff Hammond <jeff.science@gmail.com>
To: devel@mpich.org
Subject: Re: [mpich-devel] proper way to detect if program launched by
        mpiexec?
Message-ID:
        <CAGKz=u+7O8A5Zkae6jXqr+u_76ZrJ8owHBASnMhoLHTs56JOmA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

On Mon, Oct 20, 2014 at 11:15 AM, Balaji, Pavan <balaji@anl.gov> wrote:
>
>> On Oct 20, 2014, at 12:43 PM, Jeff Hammond <jeff.science@gmail.com> wrote:
>> Is this because MPICH can't spawn processes except through
>> PMI/Hydra/whatever and you - justifiably - do not want to implement a
>> special case workaround using execvp() directly?
>
> The new process needs a way to query for business cards and such, for which mpiexec is needed.  So the current design of singleton init is to spawn mpiexec and connect to it.  That?s a mess and is not clearly specified by the PMI spec.  My suggestion was to execvp the executable ?mpiexec? with the right arguments to relaunch the application again, but there are some problems with that:

Thanks for the info.  I have no problem accepting the terms of MPI-3,
section 8.7, paragraph 1, and forcing myself to use mpiexec.

Jeff

--
Jeff Hammond
jeff.science@gmail.com
http://jeffhammond.github.io/


------------------------------

_______________________________________________
devel mailing list
devel@mpich.org
https://lists.mpich.org/mailman/listinfo/devel

End of devel Digest, Vol 23, Issue 5
************************************