1 / 8

Hands-on: Compiling MPI codes with PGI Dušan Vudragović

Hands-on: Compiling MPI codes with PGI Dušan Vudragović dusan@phy.bg.ac.yu SCL, Institute of Physics Belgrade. Advanced job types. Job Collections Type = "Collection"; DAG jobs (Direct Acyclic Graphs) Type = “Dag"; Parametric jobs Type = "Parametric"; Interactive Jobs

noel
Download Presentation

Hands-on: Compiling MPI codes with PGI Dušan Vudragović

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hands-on: Compiling MPI codes with PGI Dušan Vudragović dusan@phy.bg.ac.yuSCL, Institute of Physics Belgrade

  2. Advanced job types • Job Collections • Type = "Collection"; • DAG jobs (Direct Acyclic Graphs) • Type = “Dag"; • Parametric jobs • Type = "Parametric"; • Interactive Jobs • Type = "Interactive”; • MPI Jobs (Message Passing Interface) • JobType = ”MPICH”; • https://edms.cern.ch/file/722398/1.2/gLite-3-UserGuide.html Regional Grid Training, University of Belgrade, Serbia

  3. PGI Workstation • High-performance compilers • F77, F95, HPF, C and C++ compilers • 64-bit x64 and 32-bit x86 processor • http://www.pgroup.com/products/workpgi.htm Regional Grid Training, University of Belgrade, Serbia

  4. Simple Example (f77) PROGRAM mpi INCLUDE 'mpif.h' INTEGER ierr, rank, size CALL MPI_INIT(ierr) CALL MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) CALL MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr) PRINT *, 'I am ', rank, ' of ', size CALL MPI_FINALIZE(ierr) END http://wiki.egee-see.org/index.php/SG_Gridification_Guide #MPI_.28T9.29 Regional Grid Training, University of Belgrade, Serbia

  5. Simple Example (jdl) JobType = "mpich"; NodeNumber = 3; Executable = "mpif"; StdOutput = "std.out"; StdError = "std.err"; InputSandbox = {"mpif"}; OutputSandbox = {"std.out", "std.err"}; Requirements = (other.GlueCEInfoLRMSType == "pbs") && RegExp("ce64.phy.bg.ac.yu*", other.GlueCEUniqueID); http://wiki.egee-see.org/index.php/SG_Gridification_Guide #MPI_.28T9.29 Regional Grid Training, University of Belgrade, Serbia

  6. Advanced Example (pgi) number_of_intervals=1000000000 step=1.0D+00/dble(number_of_intervals) node_integral=0.0D+00 do counter = node_id+1, number_of_intervals, number_of_nodes x=step*(dble(counter) - 0.5D+00) node_integral=node_integral+f(x) end do Regional Grid Training, University of Belgrade, Serbia

  7. Advanced Example (pgi vs. gnu) GNU Node: 1 Node integral: 1.047197550530024 Node: 2 Node integral: 1.047197549863390 Number of nodes: 3 Number of intervals: 1000000000 Node: 0 Node integral: 1.047197553196500 PI exact : 3.141592741012573 PI estimate: 3.141592653589914 PI diff : 0.8742265888983525E-07 Wall clock time: 11.238281 Regional Grid Training, University of Belgrade, Serbia

  8. Advanced Example (pgi vs. gnu) PGI Node: 1 Node integral: 1.047197550530024 Node: 2 Node integral: 1.047197549863390 Number of nodes: 3 Number of intervals: 1000000000 Node: 0 Node integral: 1.047197553196500 PI exact : 3.141592741012573 PI estimate: 3.141592653589914 PI diff : 0.8742265888983525E-07 Wall clock time: 8.765625 Regional Grid Training, University of Belgrade, Serbia

More Related