Penn State EMS Environment Institute
Environmental Computing Facility
                64 bit MPI PRPQ README for Version 1.1

*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!

IMPORTANT!  PLEASE READ!                                       
                                                                                                     
This 64 bit enabled version of MPI is provided by IBM under                          
RPQ #: P88059 and is offered as is, WITHOUT WARRANTY OF ANY KIND.                      
It is NOT INTENDED FOR PRODUCTION USE!                             


The 64-bit MPI libraries are installed in /usr/local/mpi.64bit/ on the EMSEI
SP.  You should replace "<mydirectory>/ppp.poe/" in the examples below with
this location.

*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!

COMPILING:

     1) When compiling 64-bit MPI programs for this PRPQ,
        the following directory structure must exist, 
        containing the libraries and other files shipped in the
        64-bit tar file package.  The structure may be a 
        subdirectory of any directory path (called "mydirectory" 
        below) that the user chooses.

        <mydirectory>/ppe.poe/lib/
        <mydirectory>/ppe.poe/lib/ip
        <mydirectory>/ppe.poe/lib//us/switch
        <mydirectory>/ppe.poe/lib//us/switch2
        <mydirectory>/ppe.poe/bin
        <mydirectory>/ppe.poe/include
        <mydirectory>/ppe.poe/include/thread64

        When the tar file is extracted from <mydirectory> 
        it creates the needed structure.

        This structure mimics that in /usr/lpp/ppe.poe, 
        which is used for standard 32-bit compilation, 
        but rather contains libraries with 64-bit objects 
        in addition to the 32-bit objects. In order to get 
        the compiler to access the <mydirectory>/ppe.poe
        path rather than the /usr/lpp/ppe.poe path, you must:

        export MP_PREFIX=<mydirectory>  

     2) If you are compiling for C or C++, you may use your
        installed compile scripts.  If you are compiling for 
        FORTRAN, you must use the scripts included in the tar 
        file, because they point to the 64-bit version of
        mpif.h in the path ${MP_PREFIX}/ppe.poe/include/thread64.
        In either case, you must have the environment 
        variable MP_PREFIX set as described above so that
        the proper libraries and include files are used.     
     
     3) Invoke the proper compile script, specifying the -q64 option.

*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!

RUNNING:

     1) Set up needed libraries:
        
        When running 64-bit MPI programs for this PRPQ,
        the following directory structure must exist, 
        consisting of the libraries shipped in the 64-bit tar 
        file package.  The structure may be a subdirectory of
        any directory path (called "mydirectory" below) that 
        the user chooses.

        <mydirectory>/ppe.poe/lib/libmpi_r.a
        <mydirectory>/ppe.poe/lib/libvtd_r.a
        <mydirectory>/ppe.poe/lib/libppe_r.a
        <mydirectory>/ppe.poe/lib/ip/libmpci_r.a
            (needed only for IP)
        <mydirectory>/ppe.poe/lib/us/switch/libmpci_r.a 
            (needed only for user space with SP Switch) 
        <mydirectory>/ppe.poe/lib/us/switch2/libmpci_r.a 
            (needed only for user space with SP Switch2) 
        <mydirectory>/ppe.poe/lib/us/libhal_r.a 
            (needed only for user space)

        This structure mimics that in /usr/lpp/ppe.poe, which 
        is used for running standard 32-bit programs, but rather
        contains libraries with 64-bit objects in addition to 
        the 32-bit objects.

        When the tar file is extracted from <mydirectory> it 
        creates the needed structure.

     2) If running user space, in addition to:

          export MP_EUILIB=us

        create a symbolic link in <mydirectory>/ppe.poe/lib/us as 
        follows, depending on which user space libmpci_r.a is desired:

          a) ln -s ./switch/libmpci_r.a libmpci_r.a for the SP Switch

          b) ln -s ./switch2/libmpci_r.a libmpci_r.a for the SP Switch2

     3) If running IP, all that is required is the standard:                    

          export MP_EUILIB=ip 


     4) Invoke program:

        In order to get the loader to access the <mydirectory>/ppe.poe/lib
        path rather than the /usr/lpp/ppe.poe/lib path, you must:

          a)If invoking "my64bitprogram" via POE: 

            export MP_EUILIBPATH=<mydirectory>/ppe.poe/lib
            poe my64bitprogram
  
          b)If invoking "my64bitprogram" directly (not via POE):

            export MP_EUILIBPATH=<mydirectory>/ppe.poe/lib
            export LIBPATH=<mydirectory>/ppe.poe/lib:<mydirectory>/ppe.poe/lib/$MP_EUILIB:$LIBPATH
            my64bitprogram



*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!


MISCELLANEOUS NOTES:

     1) Messages from POE, including any -ilevel information or  
        advisory messages may present truncated values in cases 
        where the value is a pointer or long.  The PRPQ does not 
        include new versions of the POE code which formats and 
        prints messages that MPI initiates so when MPI sends 
        data to be printed there can be truncation.

        This does not apply to error messages from MPI that relate 
        to use of the MPI functions since these use a different 
        mechanism.
 
     2) ulimits may need to be adjusted in order to malloc very
        large values. This can be done by a system administrator,
        or via LoadLeveler, as described here:  

        - in a LoadLeveler Job Command File (cmdfile_name):
   
           # @ job_type=parallel
           # @ data_limit = hard, soft          
           # @ queue

           Where "hard" and "soft" represent the limit values, 
           which can be set to "unlimited".
      
        - export MP_LLFILE=cmdfile_name

     3) 64-bit switch clock is not supported for the PRPQ.  The AIX
        clock is used. Make sure that you don't set
        MP_CLOCK_SOURCE=SWITCH.

     4) A banner is printed when an application runs, stating that the
        64 bit PRPQ code is in use.  In order to disable the printing 
        of this banner:

        export MP_CALLOUT_CONDITIONS=NO



Back to the index