Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [OMPI svn-full] svn:open-mpi r29651 - in trunk: config examples oshmem/include oshmem/tools/oshmem_info
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2013-11-11 13:22:49


This commit produces warnings in the output of oshmem_info:

    OSHMEM Fort shmem.fh: yes
**************************************************************************
*** DEVELOPER WARNING: A field in ompi_info output is too long and
*** will appear poorly in the prettyprint output.
***
*** Value: "OSHMEM SGI/Quadrix compatibility mode"
*** Max length: 24
**************************************************************************
OSHMEM SGI/Quadrix compatibility mode: yes
**************************************************************************
*** DEVELOPER WARNING: A field in ompi_info output is too long and
*** will appear poorly in the prettyprint output.
***
*** Value: "OSHMEM API functions parameter checking"
*** Max length: 24
**************************************************************************
OSHMEM API functions parameter checking: yes
OSHMEM profiling support: yes

On Nov 11, 2013, at 9:26 AM, svn-commit-mailer_at_[hidden] wrote:

> Author: miked (Mike Dubman)
> Date: 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013)
> New Revision: 29651
> URL: https://svn.open-mpi.org/trac/ompi/changeset/29651
>
> Log:
> Applying Jeff`s comments about proper SHMEM fortran organization of files.
> Refs: 3870
>
> Added:
> trunk/examples/hello_shmemfh.f90
> trunk/examples/ring_shmemfh.f90
> Deleted:
> trunk/examples/hello_shmemfh.f
> trunk/examples/ring_shmem.f90
> trunk/examples/ring_shmemfh.f
> Text files modified:
> trunk/config/oshmem_configure_options.m4 | 1
> trunk/examples/Makefile | 31 ++++++++++-------
> trunk/examples/Makefile.include | 5 +-
> trunk/examples/README | 5 +-
> /dev/null | 19 ----------
> trunk/examples/hello_shmemfh.f90 | 22 ++++++++++++
> /dev/null | 64 ------------------------------------
> /dev/null | 71 ----------------------------------------
> trunk/examples/ring_shmemfh.f90 | 62 ++++++++++++++++++++++++++++++++++
> trunk/oshmem/include/shmem.fh | 2 +
> trunk/oshmem/tools/oshmem_info/Makefile.am | 11 ++++++
> trunk/oshmem/tools/oshmem_info/param.c | 18 +++++++++-
> 12 files changed, 135 insertions(+), 176 deletions(-)
>
> Modified: trunk/config/oshmem_configure_options.m4
> ==============================================================================
> --- trunk/config/oshmem_configure_options.m4 Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/config/oshmem_configure_options.m4 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -112,7 +112,6 @@
> [AC_MSG_RESULT([no])])
> ])
>
> -
> AC_DEFUN([OSHMEM_SETUP_CFLAGS],[
>
>
>
> Modified: trunk/examples/Makefile
> ==============================================================================
> --- trunk/examples/Makefile Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/examples/Makefile 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -50,8 +50,8 @@
> hello_mpifh \
> hello_usempi \
> hello_usempif08 \
> - hello_shmem \
> - hello_shmemfh \
> + hello_shmem \
> + hello_shmemfh \
> Hello.class \
> ring_c \
> ring_cxx \
> @@ -60,14 +60,16 @@
> ring_usempif08 \
> ring_shmem \
> ring_shmemfh \
> - ring_shmemf90 \
> Ring.class \
> connectivity_c
>
> -# Default target. Always build the C example. Only build the others
> -# if Open MPI was build with the relevant language bindings.
> -
> +# Default target.
> all: hello_c ring_c connectivity_c
> +
> +# Always build the C example. Only build the others
> +# if Open MPI was build with the relevant language bindings.
> +mpi:
> +
> @ if ompi_info --parsable | grep bindings:cxx:yes >/dev/null; then \
> $(MAKE) hello_cxx ring_cxx; \
> fi
> @@ -83,12 +85,17 @@
> @ if ompi_info --parsable | grep bindings:java:yes >/dev/null; then \
> $(MAKE) Hello.class Ring.class; \
> fi
> - @ if ompi_info --parsable | grep mca:shmem >/dev/null; then \
> +
> +# Only build if we built OSHMEM support.
> +# Only build the Fortran examples if we have Fortran OSHMEM support.
> +shmem:
> + @ if oshmem_info --parsable | grep oshmem:bindings:c >/dev/null; then \
> $(MAKE) hello_shmem; \
> - $(MAKE) hello_shmemfh; \
> $(MAKE) ring_shmem; \
> + fi
> + @ if oshmem_info --parsable | grep oshmem:bindings:fort >/dev/null; then \
> + $(MAKE) hello_shmemfh; \
> $(MAKE) ring_shmemfh; \
> - $(MAKE) ring_shmemf90; \
> fi
>
> # The usual "clean" target
> @@ -120,13 +127,11 @@
>
> hello_shmem: hello_shmem_c.c
> $(SHMEMCC) $(CFLAGS) $^ -o $@
> -hello_shmemfh: hello_shmemfh.f
> +hello_shmemfh: hello_shmemfh.f90
> $(SHMEMFC) $(FCFLAGS) $^ -o $@
>
> ring_shmem: ring_shmem_c.c
> $(SHMEMCC) $(CFLAGS) $^ -o $@
> -ring_shmemfh: ring_shmemfh.f
> - $(SHMEMFC) $(FCFLAGS) $^ -o $@
> -ring_shmemf90: ring_shmem.f90
> +ring_shmemfh: ring_shmemfh.f90
> $(SHMEMFC) $(FCFLAGS) $^ -o $@
>
>
> Modified: trunk/examples/Makefile.include
> ==============================================================================
> --- trunk/examples/Makefile.include Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/examples/Makefile.include 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -39,15 +39,14 @@
> examples/hello_usempi.f90 \
> examples/hello_usempif08.f90 \
> examples/hello_shmem_c.c \
> - examples/hello_shmemfh.f \
> + examples/hello_shmemfh.f90 \
> examples/ring_c.c \
> examples/ring_cxx.cc \
> examples/ring_mpifh.f \
> examples/ring_usempi.f90 \
> examples/ring_usempif08.f90 \
> examples/ring_shmem_c.c \
> - examples/ring_shmemfh.f \
> - examples/ring_shmem.f90 \
> + examples/ring_shmemfh.f90 \
> examples/connectivity_c.c \
> examples/Hello.java \
> examples/Ring.java
>
> Modified: trunk/examples/README
> ==============================================================================
> --- trunk/examples/README Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/examples/README 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -31,7 +31,7 @@
> Fortran use mpi_f08: hello_usempif08.f90
> Java: Hello.java
> C shmem.h: hello_shmem_c.c
> - Fortran shmemfh.f: hello_shmemfh.f
> + Fortran shmem.fh: hello_shmemfh.f90
>
> - Send a trivial message around in a ring
> C: ring_c.c
> @@ -41,8 +41,7 @@
> Fortran use mpi_f08: ring_usempif08.f90
> Java: Ring.java
> C shmem.h: ring_shmem_c.c
> - Fortran shmemfh.f: ring_shmemfh.f
> - F90 shmemfh.f: ring_shmem.f90
> + Fortran shmem.fh: ring_shmemfh.f90
>
> Additionally, there's one further example application, but this one
> only uses the MPI C bindings:
>
> Deleted: trunk/examples/hello_shmemfh.f
> ==============================================================================
> --- trunk/examples/hello_shmemfh.f 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29650)
> +++ /dev/null 00:00:00 1970 (deleted)
> @@ -1,19 +0,0 @@
> -C *
> -C * Copyright (c) 2013 Mellanox Technologies, Inc.
> -C * All rights reserved.
> -C * $COPYRIGHT$
> -C *
> -C * Additional copyrights may follow
> -C *
> -C * $HEADER$
> -C *
> -
> - program main
> - integer proc, nproc
> - call START_PES(0)
> - proc = MY_PE()
> - nproc = NUM_PES()
> -
> - write(*, '("Hello, world, I am ", i2, " of ", i2)')
> - & proc, nproc
> - end
>
> Added: trunk/examples/hello_shmemfh.f90
> ==============================================================================
> --- /dev/null 00:00:00 1970 (empty, because file is newly added)
> +++ trunk/examples/hello_shmemfh.f90 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -0,0 +1,22 @@
> +!
> +! Copyright (c) 2013 Mellanox Technologies, Inc.
> +! All rights reserved.
> +! $COPYRIGHT$
> +!
> +! Additional copyrights may follow
> +!
> +! $HEADER$
> +!
> +program hello_shmem
> + implicit none
> + include 'shmem.fh'
> +
> + integer proc, nproc
> +
> + call START_PES(0)
> + proc = MY_PE()
> + nproc = NUM_PES()
> +
> + write(*, '("Hello, world, I am ", i2, " of ", i2)') proc, nproc
> +end program hello_shmem
> +
>
> Deleted: trunk/examples/ring_shmem.f90
> ==============================================================================
> --- trunk/examples/ring_shmem.f90 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29650)
> +++ /dev/null 00:00:00 1970 (deleted)
> @@ -1,64 +0,0 @@
> -!
> -! Copyright (c) 2013 Mellanox Technologies, Inc.
> -! All rights reserved.
> -! $COPYRIGHT$
> -!
> -! Additional copyrights may follow
> -!
> -! $HEADER$
> -!
> -
> -program ring_shmem_f90
> - implicit none
> - include 'shmem.fh'
> -
> - integer*8, save :: rbuf
> - integer*8 :: message
> - integer :: proc, nproc, next
> -! func definitions
> - integer :: my_pe, num_pes
> -
> - rbuf = -1
> - message = 10
> -
> - call start_pes(0)
> - proc = my_pe()
> - nproc = num_pes()
> -
> -! Calculate the PE number of the next process in the ring. Use the
> -! modulus operator so that the last process "wraps around" to PE 0.
> -
> - next = mod((proc + 1), nproc)
> -
> - if (proc == 0) then
> - write(*, '("Process 0 sending ", i2, " to", i2, " (", i2, " processes in ring)")') message, next, nproc
> - call shmem_put8(rbuf, message, 1, next)
> - write(*, '("Process 0 sent to ", i2)') next
> - end if
> -
> -! Pass the message around the ring. The exit mechanism works as
> -! follows: the message (a positive integer) is passed around the
> -! ring. Each time it passes PE 0, it is decremented. When each
> -! processes receives a message containing a 0 value, it passes the
> -! message on to the next process and then quits. By passing the 0
> -! message first, every process gets the 0 message and can quit
> -! normally.
> -
> - do while(message > 0)
> - call shmem_int8_wait_until(rbuf, SHMEM_CMP_EQ, message)
> -
> - if (proc == 0) then
> - message = message - 1
> - write(*, '("Process 0 decremented value:", i2)') message
> - else
> - message = rbuf
> - end if
> -
> - call shmem_put8(rbuf, message, 1, next)
> - end do
> -
> -! All done
> -
> - write(*, '("Process", i2," exiting.")') proc
> -
> -end program
>
> Deleted: trunk/examples/ring_shmemfh.f
> ==============================================================================
> --- trunk/examples/ring_shmemfh.f 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29650)
> +++ /dev/null 00:00:00 1970 (deleted)
> @@ -1,71 +0,0 @@
> -C
> -C Copyright (c) 2013 Mellanox Technologies, Inc.
> -C All rights reserved.
> -C $COPYRIGHT$
> -C
> -C Additional copyrights may follow
> -C
> -C $HEADER$
> -C
> -
> - program ring_shmem_f77
> - implicit none
> - include 'shmem.fh'
> -
> - integer*8 rbuf
> - save rbuf
> - integer*8 message
> - integer proc, nproc, next
> -C func definitions
> - integer my_pe, num_pes
> -
> - rbuf = -1
> - message = 10
> -
> - call start_pes(0)
> - proc = my_pe()
> - nproc = num_pes()
> -
> -C Calculate the PE number of the next process in the ring. Use the
> -C modulus operator so that the last process "wraps around" to PE 0.
> -
> - next = mod((proc + 1), nproc)
> -
> - if (proc .eq. 0) then
> - write(*, '("Process 0 sending ", i2, " to ", i2,
> - & " (", i2, " processes in ring)")')
> - & message, next, nproc
> - call shmem_put8(rbuf, message, 1, next)
> - write(*, '("Process 0 sent to ", i2)') next
> - end if
> -
> -C Pass the message around the ring. The exit mechanism works as
> -C follows: the message (a positive integer) is passed around the
> -C ring. Each time it passes PE 0, it is decremented. When each
> -C processes receives a message containing a 0 value, it passes the
> -C message on to the next process and then quits. By passing the 0
> -C message first, every process gets the 0 message and can quit
> -C normally.
> -
> - 10 call shmem_int8_wait_until(rbuf, SHMEM_CMP_EQ, message)
> -
> - if (proc .eq. 0) then
> - message = message - 1
> - write(*, '("Process 0 decremented value:", i2)') message
> - else
> - message = rbuf
> - end if
> -
> - call shmem_put8(rbuf, message, 1, next)
> -
> - if (message .gt. 0) then
> - goto 10
> - else
> - goto 20
> - end if
> -
> -C All done
> -
> - 20 write(*, '("Process", i2," exiting.")') proc
> -
> - end
>
> Added: trunk/examples/ring_shmemfh.f90
> ==============================================================================
> --- /dev/null 00:00:00 1970 (empty, because file is newly added)
> +++ trunk/examples/ring_shmemfh.f90 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -0,0 +1,62 @@
> +!
> +! Copyright (c) 2013 Mellanox Technologies, Inc.
> +! All rights reserved.
> +! $COPYRIGHT$
> +!
> +! Additional copyrights may follow
> +!
> +! $HEADER$
> +!
> +
> +program ring_shmem
> + implicit none
> + include 'shmem.fh'
> +
> + integer*8, save :: rbuf
> + integer*8 :: message
> + integer :: proc, nproc, next
> +
> + rbuf = -1
> + message = 10
> +
> + call start_pes(0)
> + proc = my_pe()
> + nproc = num_pes()
> +
> +! Calculate the PE number of the next process in the ring. Use the
> +! modulus operator so that the last process "wraps around" to PE 0.
> +
> + next = mod((proc + 1), nproc)
> +
> + if (proc == 0) then
> + write(*, '("Process 0 sending ", i2, " to", i2, " (", i2, " processes in ring)")') message, next, nproc
> + call shmem_put8(rbuf, message, 1, next)
> + write(*, '("Process 0 sent to ", i2)') next
> + end if
> +
> +! Pass the message around the ring. The exit mechanism works as
> +! follows: the message (a positive integer) is passed around the
> +! ring. Each time it passes PE 0, it is decremented. When each
> +! processes receives a message containing a 0 value, it passes the
> +! message on to the next process and then quits. By passing the 0
> +! message first, every process gets the 0 message and can quit
> +! normally.
> +
> + do while(message > 0)
> + call shmem_int8_wait_until(rbuf, SHMEM_CMP_EQ, message)
> +
> + if (proc == 0) then
> + message = message - 1
> + write(*, '("Process 0 decremented value:", i2)') message
> + else
> + message = rbuf
> + end if
> +
> + call shmem_put8(rbuf, message, 1, next)
> + end do
> +
> +! All done
> +
> + write(*, '("Process", i2," exiting.")') proc
> +
> +end program
>
> Modified: trunk/oshmem/include/shmem.fh
> ==============================================================================
> --- trunk/oshmem/include/shmem.fh Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/oshmem/include/shmem.fh 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -48,6 +48,8 @@
> integer SHMEM_CMP_GE
> parameter ( SHMEM_CMP_GE = 5 )
>
> + integer my_pe
> + integer num_pes
>
> logical shmem_pe_accessible
> logical shmem_addr_accessible
>
> Modified: trunk/oshmem/tools/oshmem_info/Makefile.am
> ==============================================================================
> --- trunk/oshmem/tools/oshmem_info/Makefile.am Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/oshmem/tools/oshmem_info/Makefile.am 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -25,6 +25,17 @@
> -DOMPI_BUILD_LIBS="\"@LIBS@\"" \
> -DOPAL_CC_ABSOLUTE="\"@OPAL_CC_ABSOLUTE@\"" \
> -DOMPI_CXX_ABSOLUTE="\"@OMPI_CXX_ABSOLUTE@\""
> +if OSHMEM_PROFILING
> + AM_CFLAGS += -DOSHMEM_PROFILING=1
> +else
> + AM_CFLAGS += -DOSHMEM_PROFILING=0
> +endif
> +
> +if OSHMEM_WANT_FORTRAN_BINDINGS
> + AM_CFLAGS += -DOSHMEM_WANT_FORTRAN_BINDINGS=1
> +else
> + AM_CFLAGS += -DOSHMEM_WANT_FORTRAN_BINDINGS=0
> +endif
>
> include $(top_srcdir)/Makefile.man-page-rules
>
>
> Modified: trunk/oshmem/tools/oshmem_info/param.c
> ==============================================================================
> --- trunk/oshmem/tools/oshmem_info/param.c Sat Nov 9 23:12:14 2013 (r29650)
> +++ trunk/oshmem/tools/oshmem_info/param.c 2013-11-11 09:26:25 EST (Mon, 11 Nov 2013) (r29651)
> @@ -116,7 +116,7 @@
> char *crdebug_support;
> char *topology_support;
> char *vt_support;
> -
> +
> /* Do a little preprocessor trickery here to figure opal_info_out the
> * tri-state of MPI_PARAM_CHECK (which will be either 0, 1, or
> * ompi_mpi_param_check). The preprocessor will only allow
> @@ -602,5 +602,19 @@
> opal_info_out("MPI_MAX_DATAREP_STRING", "options:mpi-max-datarep-string",
> "IO interface not provided");
> #endif
> -
> +
> + /* This block displays all the options with which the current
> + * installation of oshmem was configured. */
> + {
> + char *oshmem_fortran = OSHMEM_WANT_FORTRAN_BINDINGS ? "yes" : "no";
> + char *oshmem_compat = OSHMEM_SPEC_COMPAT ? "yes" : "no";
> + char *oshmem_param_check = OSHMEM_PARAM_CHECK ? "yes" : "no";
> + char *oshmem_profiling = OSHMEM_PROFILING ? "yes" : "no";
> +
> + opal_info_out("OSHMEM C bindings", "oshmem:bindings:c", "yes");
> + opal_info_out("OSHMEM Fort shmem.fh", "oshmem:bindings:fort", oshmem_fortran);
> + opal_info_out("OSHMEM SGI/Quadrix compatibility mode", "oshmem:options:spec_compat", oshmem_compat);
> + opal_info_out("OSHMEM API functions parameter checking", "oshmem:options:param_check", oshmem_param_check);
> + opal_info_out("OSHMEM profiling support", "oshmem:options:profiling", oshmem_profiling);
> + }
> }
> _______________________________________________
> svn-full mailing list
> svn-full_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/