Quick Tutorial on MPICH for NIC-Cluster

Slides:



Advertisements
Similar presentations
© 2007 IBM Corporation IBM Global Engineering Solutions IBM Blue Gene/P Job Submission.
Advertisements

Chapter 3. MPI MPI = Message Passing Interface Specification of message passing libraries for developers and users –Not a library by itself, but specifies.
Using the Argo Cluster Paul Sexton CS 566 February 6, 2006.
Zhang Hongyi CSCI2100B Data Structures Tutorial 2
CCPR Workshop Lexis Cluster Introduction October 19, 2007 David Ash.
Software Tools Using PBS. Software tools Portland compilers pgf77 pgf90 pghpf pgcc pgCC Portland debugger GNU compilers g77 gcc Intel ifort icc.
Running Jobs on Jacquard An overview of interactive and batch computing, with comparsions to Seaborg David Turner NUG Meeting 3 Oct 2005.
Tutorial on MPI Experimental Environment for ECE5610/CSC
ISG We build general capability Job Submission on the Olympus Cluster J. DePasse; S. Brown, PhD; T. Maiden Pittsburgh Supercomputing Center Public Health.
High Performance Computing
Job Submission on WestGrid Feb on Access Grid.
Using the BYU Supercomputers. Resources Basic Usage After your account is activated: – ssh ssh.fsl.byu.edu You will be logged in to an interactive node.
Quick Tutorial on MPICH for NIC-Cluster CS 387 Class Notes.
Introduction to UNIX/Linux Exercises Dan Stanzione.
 Accessing the NCCS Systems  Setting your Initial System Environment  Moving Data onto the NCCS Systems  Storing Data on the NCCS Systems  Running.
Electronic Visualization Laboratory, University of Illinois at Chicago MPI on Argo-new Venkatram Vishwanath Electronic Visualization.
VIPBG LINUX CLUSTER By Helen Wang March 29th, 2013.
Bigben Pittsburgh Supercomputing Center J. Ray Scott
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
17-April-2007 High Performance Computing Basics April 17, 2007 Dr. David J. Haglin.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Using the BYU Supercomputers. Resources Basic Usage After your account is activated: – ssh You will be logged in to an interactive.
Parallel Programming on the SGI Origin2000 With thanks to Igor Zacharov / Benoit Marchand, SGI Taub Computer Center Technion Moshe Goldberg,
HPC for Statistics Grad Students. A Cluster Not just a bunch of computers Linked CPUs managed by queuing software – Cluster – Node – CPU.
How to for compiling and running MPI Programs. Prepared by Kiriti Venkat.
Software Tools Using PBS. Software tools Portland compilers pgf77 pgf90 pghpf pgcc pgCC Portland debugger GNU compilers g77 gcc Intel ifort icc.
Running Parallel Jobs Cray XE6 Workshop February 7, 2011 David Turner NERSC User Services Group.
File Systems cs550 Operating Systems David Monismith.
1 HPCI Presentation Kulathep Charoenpornwattana. March 12, Outline Parallel programming with MPI Running MPI applications on Azul & Itanium Running.
Portable Batch System – Definition and 3 Primary Roles Definition: PBS is a distributed workload management system. It handles the management and monitoring.
Advanced topics Cluster Training Center for Simulation and Modeling September 4, 2015.
Cliff Addison University of Liverpool NW-GRID Training Event 26 th January 2007 SCore MPI Taking full advantage of GigE.
Debugging Lab Antonio Gómez-Iglesias Texas Advanced Computing Center.
Wouter Verkerke, NIKHEF 1 Using ‘stoomboot’ for NIKHEF-ATLAS batch computing What is ‘stoomboot’ – Hardware –16 machines, each 2x quad-core Pentium = 128.
NREL is a national laboratory of the U.S. Department of Energy, Office of Energy Efficiency and Renewable Energy, operated by the Alliance for Sustainable.
Using ROSSMANN to Run GOSET Studies Omar Laldin ( using materials from Jonathan Crider, Harish Suryanarayana ) Feb. 3, 2014.
Grid Computing: An Overview and Tutorial Kenny Daily BIT Presentation 22/09/2016.
An Brief Introduction Charlie Taylor Associate Director, Research Computing UF Research Computing.
Advanced Computing Facility Introduction
Hackinars in Bioinformatics
Hands on training session for core skills
GRID COMPUTING.
Specialized Computing Cluster An Introduction
Auburn University
Welcome to Indiana University Clusters
PARADOX Cluster job management
Introduction to Operating Systems
Unix Scripts and PBS on BioU
HPC usage and software packages
OpenPBS – Distributed Workload Management System
MPI Basics.
Welcome to Indiana University Clusters
How to use the HPCC to do stuff
Using Paraguin to Create Parallel Programs
BIOSTAT LINUX CLUSTER By Helen Wang October 29, 2015.
Computational Physics (Lecture 17)
Hodor HPC Cluster LON MNG HPN Head Node Comp Node Comp Node Comp Node
Architecture & System Overview
A Guide to Unix Using Linux Fourth Edition
BIMSB Bioinformatics Coordination
Practice #0: Introduction
Postdoctoral researcher Department of Environmental Sciences, LSU
Paul Sexton CS 566 February 6, 2006
Compiling and Job Submission
CCR Advanced Seminar: Running CPLEX Computations on the ISE Cluster
Chapter 2: Operating-System Structures
Introduction to High Performance Computing Using Sapelo2 at GACRC
Chapter 2: Operating-System Structures
Working in The IITJ HPC System
Presentation transcript:

Quick Tutorial on MPICH for NIC-Cluster CS 5802 Class Notes

NIC CLUSTER OVERVIEW Start page: http://hpc.mst.edu/ Node Allocation and Usage policy: http://hpc.mst.edu/accessandpolicies/ The Shared NIC Cluster Hardware and Software The NIC cluster had 64-bit nodes (http://hpc.mst.edu/about/hardware/) connected with an Ethernet network. READ http://hpc.mst.edu/quickstart/ To get started.

PBS Job Scripts NIC cluster uses PBS (Portable Batch System) Why? Improves overall system efficiency Fair access to all users since it maintains a scheduling policy Provides protection against dead nodes

How PBS works User writes a batch script for the job and submits it to PBS with the qsub command. PBS places the job into a queue based on its resource requests and runs the job when those resources become available. The job runs until it either completes or exceeds one of its resource request limits. PBS copies the job’s output into the directory from which the job was submitted and optionally notifies the user via email that the job has ended.

Step 1: Login Off-campus machine: Connect to campus using MST VPN > ssh nic.mst.edu On-campus machine (VPN is not required) Use the following to set up your MPI path correctly. $ module load openmpi/gnu To make this your default run $ savemodules Visit http://hpc.mst.edu/examples/openmpi/c/ to get information about OpenMP

No DFS Support DFS files are not directly accessible at the cluster Use sftp command to transfer any files from your DFS space (S: drive) e.g. > sftp minersftp.mst.edu > get X.c > quit You may also use WinSCP in Windows.

Step 2: Compile MPICH Programs Syntax: C : mpicc –o hello hello.c C++ : mpiCC –o hello hello.cpp Note: Before compilation, make sure the MPICH library path is set or use the export command like below: export PATH=/opt/mpich/gnu/bin: $PATH Executable file

Step 3: Write PBS batch script file Ex1: A simple script file (pbs_script) A job named “HELLO” requests 8 nodes and at most 15 minutes of runtime. #!/bin/bash #PBS –N HELLO #PBS –l walltime=0:15:00 #PBS –l nodes=8 #PBS –q @nic-cluster.mst.edu mpirun –n 8 /nethome/users/ercal/MPI/hello

Some PBS Directive options -N jobname (name the job “jobname”) -q @nic-cluster.mst.edu (The cluster address to send the job to) -e errfile (redirect standard error to a file named errfile) -o outfile (redirect standard output to a file named outfile) -j oe (combine standard output and standard error) -l walltime=N (request a walltime of N in the form hh:mm:ss) -l cput=N (request N sec of CPU time; or in the form hh:mm:ss) -l mem=N[KMG][BW] (request total N kilo| mega| giga} {bytes| words} of memory on all requested processors together) -l nodes=N:ppn=M (request N nodes with M processors per node)

Step 3.1: Submit a Job Use PBS command qsub Syntax : qsub pbs-job-filename Example : > qsub pbs_script returns the message 555.nic-p1.srv.mst.edu (555 is the job ID that PBS automatically assigns to your job)

Result after job completion An error file and an output file are created. The names are usually of the form: jobfilename.o(jobid) jobfilename.e(jobid) Ex: simplejob.e555 – Contains STDERR simplejob.o555 – Contains STDOUT -j oe (combine standard output and standard error)

Ex2: Another sample batch script (pbs_script) #PBS -N hello #PBS -l mem=200mb #PBS -l walltime=0:15:00 #PBS -l nodes=2:ppn=2 #PBS -j oe #PBS –m abe mpirun –n 8 /nethome/users/ercal/MPI/hello This job “hello” requests 15 minutes of wall-time, 2 nodes using 2 processors each (4 processors), and 200MB of memory (100MB per node; 50MB per processor). Also, the output and error are written to one file. How many processes are created?

(This can help to check memory requirements before submitting a job) Tools qstat (jobid) qstat –u (userid) qstat -a This command returns the status of specified job(s). qdel (jobid) This command deletes a job. size executable_file_name gives O/P in the following format: text data bss dec hex filename 1650312 71928 6044136 7766376 768168 hello (This can help to check memory requirements before submitting a job)

Tips for programming in MPICH Use compiler optimizing flags for faster code. Some of them are: -O2 (moderate optimization) -funroll-loops (enables loop unrolling optimizations) -Wall (enables all common warnings) -ansi (enables ANSI C/C++ compliance) -pedantic (enables strictness of language compliance) Avoid using pointers in your program, unless absolutely necessary.

Tips (cont.) No scanf allowed in MPICH (fscanf is allowed). Instead, pass input to your program using command line arguments argc and argv in the mpiexec command of the PBS script Example: mpirun –n 8 /nethome/users/ercal/MPI/cpi …arguments… To give your job a high priority, set wall-time ≤ 15 minutes (#PBS -l walltime=0:15:00) and number of nodes ≤ 32 (#PBS -l nodes=16:ppn=2)