shmem_ptr man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]


SHMEM_PTR(3)						       SHMEM_PTR(3)

NAME
     shmem_ptr - Returns a pointer to a data object on a specified
     processing element (PE)

SYNOPSIS
     C or C++:

	#include <mpp/shmem.h>

	void *shmem_ptr(void *target, int pe);

     Fortran:

	INCLUDE "mpp/shmem.fh"

	POINTER (PTR, POINTEE)
	INTEGER pe
	PTR = SHMEM_PTR(target, pe)

DESCRIPTION
     shmem_ptr returns the address of target on the specified PE.  This
     address can be assigned to a pointer.  After that, ordinary loads and
     stores to this remote address may be performed.

     When a sequence of loads (gets) and stores (puts) to a data object on
     a remote PE does not match the access pattern provided in a SHMEM data
     transfer routine like shmem_put32(3) or shmem_real_iget(3), the
     shmem_ptr function can provide an efficient means to accomplish the
     communication.

     The arguments are as follows:

     target    The remotely accessible integer data object on the remote
	       PE.

     pe	       An integer that indicates the PE number on which target is
	       to be accessed.	If you are using Fortran, it must be a
	       default integer value.

EXAMPLES
     This two-PE Fortran program calls shmem_ptr:

	  PROGRAM PEEK
	  INCLUDE 'mpp/shmem.fh'

	  INTEGER BIGD(100)
	  SAVE BIGD

	  INTEGER POINTEE(*)
	  POINTER (PTR,POINTEE)

	  CALL START_PES(2)

	  IF (MY_PE() .EQ. 0) THEN
					  ! initialize PE 1's BIGD array
	     PTR = SHMEM_PTR(BIGD, 1)	  ! get address of PE 1's BIGD
					  !   array
	     DO I=1,100
		  POINTEE(I) = I
	     ENDDO
	  ENDIF

	  CALL SHMEM_BARRIER_ALL

	  IF (MY_PE() .EQ. 1) THEN
	     PRINT*,'BIGD on PE 1 is: '
	     PRINT*,BIGD
	  ENDIF
	  END

     This two-PE C program calls shmem_ptr:

	  #include <mpp/shmem.h>
	  main()
	  {
		  static int bigd[100];
		  int *ptr;
		  int i;

		  start_pes(2);

		  if (_my_pe() == 0) {
			  /* initialize PE 1's bigd array */
			  ptr = shmem_ptr(bigd, 1);
			  for (i=0; i<100; i++)
				  *ptr++ = i+1;
		  }

		  shmem_barrier_all();

		  if (_my_pe() == 1) {
			  printf("bigd on PE 1 is:\n");
			  for (i=0; i<100; i++)
				  printf(" %d",bigd[i]);
			  printf("\n");
		  }
	  }

NOTES
     The shmem_ptr function is available only on systems where ordinary
     memory loads and stores are used to implement SHMEM put and get
     operations.

RETURN VALUES
     shmem_ptr returns a pointer to the data object on the specified remote
     PE.  If target is not remotely accessible, a NULL pointer is returned.

SEE ALSO
     intro_shmem(3), shmem_put(3), shmem_get(3),
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net