Introduction to the HPC Resources at the University of Pittsburgh

Similar documents
Before We Start. Sign in hpcxx account slips Windows Users: Download PuTTY. Google PuTTY First result Save putty.exe to Desktop

New User Tutorial. OSU High Performance Computing Center

High Performance Computing (HPC) Club Training Session. Xinsheng (Shawn) Qin

Introduction to Discovery.

Minnesota Supercomputing Institute Regents of the University of Minnesota. All rights reserved.

Introduction to Discovery.

Introduction to HPC Resources and Linux

Introduction to Discovery.

Quick Start Guide. by Burak Himmetoglu. Supercomputing Consultant. Enterprise Technology Services & Center for Scientific Computing

CENTER FOR HIGH PERFORMANCE COMPUTING. Overview of CHPC. Martin Čuma, PhD. Center for High Performance Computing

Introduction to PICO Parallel & Production Enviroment

Introduction to the NCAR HPC Systems. 25 May 2018 Consulting Services Group Brian Vanderwende

Using Sapelo2 Cluster at the GACRC

Introduction to HPC Using the New Cluster at GACRC

Introduction to HPC Using the New Cluster at GACRC

Quick Start Guide. by Burak Himmetoglu. Supercomputing Consultant. Enterprise Technology Services & Center for Scientific Computing

Intel Manycore Testing Lab (MTL) - Linux Getting Started Guide

The cluster system. Introduction 22th February Jan Saalbach Scientific Computing Group

Migrating from Zcluster to Sapelo

XSEDE New User Tutorial

Introduction to GALILEO

Introduction to GALILEO

User Guide of High Performance Computing Cluster in School of Physics

Crash Course in High Performance Computing

Working on the NewRiver Cluster

UF Research Computing: Overview and Running STATA

Using the computational resources at the GACRC

ICS-ACI System Basics

Introduction to HPC at MSU

UoW HPC Quick Start. Information Technology Services University of Wollongong. ( Last updated on October 10, 2011)

Our new HPC-Cluster An overview

Introduction to Joker Cyber Infrastructure Architecture Team CIA.NMSU.EDU

Computing with the Moore Cluster

Introduction to HPC Using the New Cluster at GACRC

Logging in to the CRAY

bwunicluster Tutorial Access, Data Transfer, Compiling, Modulefiles, Batch Jobs

PACE. Instructional Cluster Environment (ICE) Orientation. Research Scientist, PACE

Answers to Federal Reserve Questions. Training for University of Richmond

Introduction to GALILEO

How to run applications on Aziz supercomputer. Mohammad Rafi System Administrator Fujitsu Technology Solutions

A Hands-On Tutorial: RNA Sequencing Using High-Performance Computing

Getting started with the CEES Grid

bwunicluster Tutorial Access, Data Transfer, Compiling, Modulefiles, Batch Jobs

Our Workshop Environment

For Dr Landau s PHYS8602 course

Minnesota Supercomputing Institute Regents of the University of Minnesota. All rights reserved.

Running Jobs, Submission Scripts, Modules

PACE. Instructional Cluster Environment (ICE) Orientation. Mehmet (Memo) Belgin, PhD Research Scientist, PACE

High Performance Computing (HPC) Using zcluster at GACRC

NBIC TechTrack PBS Tutorial

Supercomputing environment TMA4280 Introduction to Supercomputing

Introduc)on to Hyades

Introduction to High Performance Computing (HPC) Resources at GACRC

Introduction to HPCC at MSU

OBTAINING AN ACCOUNT:

Sharpen Exercise: Using HPC resources and running parallel applications

HPC Introductory Course - Exercises

Introduction to CINECA HPC Environment

XSEDE New User Tutorial

HIGH PERFORMANCE COMPUTING (PLATFORMS) SECURITY AND OPERATIONS

XSEDE New User Tutorial

Introduction to HPC Using zcluster at GACRC

XSEDE New User Tutorial

Cluster Clonetroop: HowTo 2014

The JANUS Computing Environment

Introduction to HPC Numerical libraries on FERMI and PLX

A Brief Introduction to The Center for Advanced Computing

An Introduction to Cluster Computing Using Newton

Introduction to High-Performance Computing (HPC)

Introduction to HPC Using zcluster at GACRC

Batch Systems. Running calculations on HPC resources

Introduction to HPC Using zcluster at GACRC

PBS Pro Documentation

Introduction to NCAR HPC. 25 May 2017 Consulting Services Group Brian Vanderwende

Sharpen Exercise: Using HPC resources and running parallel applications

Job Management on LONI and LSU HPC clusters

NBIC TechTrack PBS Tutorial. by Marcel Kempenaar, NBIC Bioinformatics Research Support group, University Medical Center Groningen

Name Department/Research Area Have you used the Linux command line?

Quick Guide for the Torque Cluster Manager

A Brief Introduction to The Center for Advanced Computing

EE/CSCI 451 Introduction to Parallel and Distributed Computation. Discussion #4 2/3/2017 University of Southern California

A Brief Introduction to The Center for Advanced Computing

Batch Systems. Running your jobs on an HPC machine

Introduction to HPC Using zcluster at GACRC On-Class GENE 4220

Exercise 1: Connecting to BW using ssh: NOTE: $ = command starts here, =means one space between words/characters.

Introduction to CINECA Computer Environment

Using the IAC Chimera Cluster

Graham vs legacy systems

ACEnet for CS6702 Ross Dickson, Computational Research Consultant 29 Sep 2009

Shared Memory Programming With OpenMP Computer Lab Exercises

Image Sharpening. Practical Introduction to HPC Exercise. Instructions for Cirrus Tier-2 System

Guillimin HPC Users Meeting March 17, 2016

Introduction to High-Performance Computing (HPC)

Transitioning to Leibniz and CentOS 7

UAntwerpen, 24 June 2016

Shared Memory Programming With OpenMP Exercise Instructions

Effective Use of CCV Resources

Introduction to HPC Using the New Cluster at GACRC

Introduction to the Cluster

Knights Landing production environment on MARCONI

Transcription:

Introduction to the HPC Resources at the University of Pittsburgh Kim F. Wong and Albert DeFusco Center for Simulation and Modeling July 18, 2013

Agenda This hands-on introductory workshop will cover the following topics: Characteristics of the high performance computing cluster at Pitt Various methods for accessing the cluster Useful common Linux commands How to modify your default working environment Accessing installed software and compiling code How to write a job submission script Querying and modifying the status of submitted jobs Where to go if you have questions, problems, or complaints Main documentation portal --- http://core.sam.pitt.edu/doc

What is High Performance Computing? Here are some characteristics of a HPC cluster (or computational grid) Comprised of a network (a grid) of computers that can be harnessed simultaneously to tackle a problem requiring large processing power Elements of the grid can be connected by a specialized high-speed interconnect or a standard GigE network Grid resources are shared among a community of users Users request grid resources through some kind of management software Motivations for grid computing Necessary for solving grand challenge problems problems that require an enormous amount of computation Provides more cost-effective usage of computational resources towards common objectives

Frank: Heterogeneous HPC Cluster A reason for exploiting parallel computing is that you want to divide up the work load among processes so as to conquer the problem faster or to conquer a bigger problem. Maintained by CSSD & SaM; housed at RIDC Park ~7400 CPU cores comprised of dual 8- core Intel Sandy Bridge, quad 16-core AMD Interlagos, dual 6-core Intel Westmere, quad 12-core AMD Magny- Cours, and older Intel Xeon architectures Available memory on nodes range from 8-256 GB of RAM 4 of the Westmere nodes has 4 NVIDIA Tesla M2070 GPU cards Most nodes connected via Infiniband ~100s TB of storage; Panasas storage Frank is firewalled within Pittnet: Access from outside of Pittnet is enabled via a Image courtesy of Luda Doroshkevich (CSSD) VPN session

How do you access them remotely? frank.sam.pitt.edu is firewalled, so you will need to establish a Virtual Private Networking (VPN) before connecting to the cluster Point Firefox to https://sremote.pitt.edu and authenticate using your Pitt credentials 1 2 3 Alternatives to sremote: http://core.sam.pitt.edu/offcampusaccess

Accessing HPC Cluster Access to Frank is enabled via a secure shell (SSH) connection to the cluster. A SSH client called PuTTY is available for Windows Specify these connection properties: Hostname: frank.sam.pitt.edu Port: 22 Connection type: SSH Clicking the Open button will open a SSH terminal login as: <Pitt Username> password: <my.pitt password> Linux & Mac Users: type ssh <username>@frank.sam.pitt.edu within a terminal

Transferring files to Frank (Windows)? frank.sam.pitt.edu is firewalled, so you will need to establish a Virtual Private Networking (VPN) before connecting to the cluster For Windows, use WinSCP http://sourceforge.net/projects/winscp/. Login in to Frank using your Pitt credentials. 1 2 drag and drop between panels

Transferring files to Frank (Mac)? For Macs, I have heard that Cyberduck works well: http://cyberduck.ch/. So I installed the Windows version to give it a try. 1 2 3 After authentication, a new window shows up. Drag and drop between that window and your local desktop/folders.

Transferring using Globus Online? 1 Full instructions for configuring Globus Online to connect to Frank are provided here: http://core.sam.pitt.edu/globusonline. 2 3 Authenticate using your Pitt credentials

Transferring using Globus Online? 4 Unfortunately, drag-n-drop does not work. Use the arrow in between the two panels to transfer files from one endpoint to the other. 5 If you are transferring large genomics data, it is best to use Globus Online.

Your User Environment For most users, the primary interaction with the cluster is via this terminal session. The line containing the active cursor is call the Linux commandline Through the Linux commandline, you can Create, remove, rename files and directories Edit files Compile and execute code Change your environment settings (details provided later) Submit jobs to the queue system (details provided later) Connect to other remote machines

Some Simple Linux Commands Common Linux commands pwd -- show current location ls -- list content of current directory cd -- change to home directory cd <directory> -- change to <directory> mkdir <directory> -- create <directory> rmdir <directory> -- remove empty <directory> cp <file> <new file> -- copy <file> to <new file> mv <file> <new file> -- rename <file> to <new file> rm <file> -- remove <file> man <command> -- display online manual for <command> more <file> -- display the content of a file wc <file> -- count lines, words, and bytes in a file grep <pattern> <file> -- pattern searching Most commands have additional option flags that modify the command behavior. Use man <command> to learn more about these features

The Unix Shell and the Power of By now you know of the commands showq, grep, and wc. And if you have forgotten about the details of a command, you can always man <command> to print out the online man pages. man grep But perhaps the most important command is the pipe:

The Unix Shell and the Power of The symbol is the [shift]\ key that is typically located above the [Enter] key. It permits you to pipeline several simple commands together into a more complex operation, whereby the output from each command are used as input for each successively command from left to right. Showq grep kimwong wc Effectively, what I have done is to show the number of jobs that are in the queue for user kimwong. showq displays all the jobs in the queue and grep prunes that list for lines matching kimwong, and finally wc counts the number of lines.

Environment Modules When you log into the cluster, a set of initialization scripts execute and set up some default environment variables. Your environment contains all information about your programs and preferences We use the Environment Modules package to facilitate dynamic modification of a user's environment module avail -- displays available packages module list -- list loaded packages module load <package> -- load a package module unload <package> -- unload a package module purge -- unload all packages module show -- display content of module

Available Compilers The Module Environments have default compilers loaded [kimwong@login0 ~]$ module list Currently Loaded Modulefiles: 1) modules 4) openmpi/1.5.1-intel11 7) gold/2.2.0.4(default) 2) sys 5) mkl/11.1.072/icc-st 8) torque/3.0.5(default) 3) intel/11.1.072(default:11.1) 6) env/intel-openmpi(default) 9) moab/6.1.7(default) To change to the gcc (GNU Compiler Collection) environment, execute the following commands in your terminal module purge module load gcc/4.5 module list [kimwong@login0 ~]$ module list Currently Loaded Modulefiles: 1) modules 2) sys 3) gcc/4.5.1(4.5)

Compiling Code We will walk through simple examples of compiling code First, copy the sample codes cp -rp /home/sam/training/cluster/hello_world/. Next, go into the hellow_world/ directory and look around cd hello_world ls [kimwong@login0 hello_world]$ ls Hello.pbs_script hello_world.c hello_world.f90 hello_world_id.c hello_world_id.f90 Your environment has been configured to use the following commands for compilation CC -- C compiler CXX -- C++ compiler FC -- Fortran compiler

Compiling Code (serial) Let us compile hello_world.c and hello_world.f90 CC hello_world.c -o hi FC hello_world.f90 -o howdy Now, let s run the programs./hi./howdy [kimwong@login0 hello_world]$./hi Hello world! [kimwong@login0 hello_world]$./howdy Hello World! In the C code example above, CC invokes the gcc compiler followed by the name of the source code the o <name> option specifies a name for the compiled program

Compiling Code (OpenMP) Let us compile with OpenMP support CC fopenmp hello_world.c -o hi_omp FC fopenmp hello_world.f90 -o howdy_omp Now, let s run the OpenMP programs./hi_omp./howdy_omp Now is a good time to tell you about the environment variable OMP_NUM_THREADS OMP_NUM_THREADS specifies the number of instances of an execution and you set it using export OMP_NUM_THREADS=<integer> Give it try and run your program again. What happens for different <integer> values?

Additional OpenMP Code The hello_world/ directory contains another more complex OpenMP codes CC fopenmp hello_world_id.c -o hi_omp_id FC fopenmp hello_world_id.f90 -o howdy_omp_id What happens when you execute hi_omp_id? Try changing the value of OMP_NUM_THREADS. Now what happens? As you might guess by now, the OMP_NUM_THREADS variable controls how many parallel execution instances of a particular code region. If you are curious, view the codes using more hello_world.c

The Queue System Because Frank is a shared resource, everyone must get in line to use it. The batch system

Compute Resources Backfill (frank-avail) Current time frame backfill Execution Time Stream

Queue Components All interactive and batch access to Frank compute nodes are controlled by the Torque Resource Manager, an open source version of the Portable Batch System (PBS) Communicates with nodes and runs jobs Accepts resource requests Moab Workload Manager is a policy-based job scheduler and is utilized on Frank to implement the scheduling Determines when jobs are run Manages prioritization and resource limits Allows small jobs to backfill while others wait Account management is provided by Gold Logs and charges service units

Two Classes of Jobs Shared Memory Applications that can run one or more cores/threads. No communication between nodes Distributed Memory Applications that efficiently use multiple cores across multiple nodes Not for single core/thread jobs

The Queues Shared Memory Distributed Memory shared 15 nodes; 48 cores; 2.6 GB/core 1 TB local disk -q shared -l nodes=1:ppn<=48 shared_large 8 nodes; 16 cores; 4 GB/core 2 TB local disk -q shared_large -l nodes=1:ppn<=16 shared_heavy 2 nodes; 16 cores; 8 GB/core 3 TB local disk -q shared_heavy -l nodes=1:ppn<=16 Access restricted by need. Submit a ticket if needed. distributed 32 nodes; 12 cores; 4 GB/core 1 TB local disk -q distributed -l nodes>=2:ppn=12 dist_small 36 nodes; 16 cores; 2 GB/core 1 TB local disk -q dist_small -l nodes>=2:ppn=16 dist_big 36 nodes; 16 cores; 4 GB/core 1 TB local disk -q dist_big -l nodes>=2:ppn=16

Service Unit Policies All CPU-hours are not the same Cost is scaled by the relative CPU speeds All groups receive a yearly 10,000 SU allocation Several investment options exist Charges are made when a job finishes SU = wall-time * cpu-scale * n-cpus Magny Cours Interlagos Westmere Sandy Bridge GPU 0.5 0.75 1.0 1.5 8.0 http://core.sam.pitt.edu/service-unit-policy

Common job submission commands frank-avail <queue> Determine available resources http://core.sam.pitt.edu/frank/batch qsub <options> <job-script> Request resources: queue, memory, walltime Submit your job to be scheduled and run checkjob v <jobid> Showq w user=<pittid> qstat n u <username> qdel <jobid> mybalance -h -- monitor status of job -- show jobs in queue -- show jobs for <username> -- delete job with <job id> -- query your SU balance

A Simple Job Submission Script #!/bin/bash #PBS -N hello #PBS -o omp.out #PBS -j oe #PBS -q shared #PBS l nodes=1:ppn=24 module purge module load gcc/4.5 cd $PBS_O_WORKDIR time./hi_omp_id >& hi_omp_id.log This job submission script is called hello.pbs_script. To submit it to the queue, type qsub hello.pbs_script For an interactive session, type qsub I q shared l nodes=1:ppn=1,walltime=4:00:00 For more info on the batch system: http://core.sam.pitt.edu/node/1891

Availability of Nodes To see current and future availability of machines, run frank-avail <queue-name>. defusco@login0:~>frank-avail dist_small Tasks Nodes Duration StartOffset StartDate ----- ----- ------------ ------------ -------------- 343 24 00:00:30 00:00:00 16:02:28_10/09 407 28 3:52:01 00:00:30 16:02:58_10/09 439 30 00:00:04 3:52:31 19:54:59_10/09 471 32 5:19:04:11 3:52:35 19:55:03_10/09 503 34 00:05:31 5:22:56:46 14:59:14_10/15 535 36 INFINITY 5:23:02:17 15:04:45_10/15

Job States Once a job is submitted, checkjob will return the state of the job. checkjob -v <jobid> or showq w user=<pittid> Running: Job is currently in execution on one or more compute nodes. Deferred: Job that has been held by MOAB due to an inability to schedule the job under current conditions. Deferred jobs are held for 1 hour before being placed in the idle queue. This process is repeated 24 times before the job is placed in batch hold. Hold: Job is idle and is not eligible to run due to a user, (system) administrator, or batch system hold Idle: Job is currently queued and actively waiting for available resources Blocked: Job is currently queued and ineligible to run due to throttling restricts, such as maximum number of cores already in use, or other policy violations. In some cases, when a policy violation is detected the job will be automatically canceled.

Resource Limitations All jobs are limited to 6 day wall times. Core limitations exist for every queue Jobs become blocked when you reach your core limit. Blocked jobs will start when your running jobs finish. Run checkjob -v <jobid>. http://core.sam.pitt.edu/frank/batch

Checkjob Output The complete status of running and queued jobs can only be determined by checkjob Why is the job queued? When will it start? Why is the job blocked? Was there a submission error? Why did the job fail? Exhausted allocation System trouble checkjob can be run up to 24 hours after completion (cancellation) of the job

Checkjob Example: Idle defusco@login0:espresso-5.0>checkjob -v 370072 job 370072 (RM job '370072.headnode.localdomain') AName: TME_50_s_004 State: Idle Creds: user:pozun group:kjordan account:kjordan class:jordan qos:investor WallTime: 00:00:00 of 6:00:00:00 BecameEligible: Wed Oct 10 09:40:17 SubmitTime: Wed Oct 10 09:40:13 (Time Queued Total: 7:23:12 Eligible: 7:22:51) Total Requested Tasks: 96 Req[0] TaskCount: 96 Partition: ALL TasksPerNode: 48 Reserved Nodes: (4:18:55:17 -> 10:18:55:17 Duration: 6:00:00:00) n[43,45]*48

Checkjob Example: Blocked defusco@login0:espresso-5.0>checkjob -v 370700 job 370700 (RM job '370700.headnode.localdomain') AName: 2ion-cl-w33-r6 State: Idle Creds: user:hac73 group:kjohnson account:kjohnson class:kohn qos:investor WallTime: 00:00:00 of 2:22:00:00 SubmitTime: Wed Oct 10 13:04:40 (Time Queued Total: 4:02:18 Eligible: 00:00:02) Total Requested Tasks: 2 Req[0] TaskCount: 2 Partition: ALL NOTE: job violates constraints for partition Fermi (job 370700 violates active HARD MAXPROC limit of 128 for class kohn user partition ALL (Req: 2 InUse: 128)) BLOCK MSG: job 370700 violates active SOFT MAXPROC limit of 128 for class kohn user partition ALL (Req: 2 InUse: 128) (recorded at last scheduling iteration)

Checkjob Example: Error defusco@login0:espresso-5.0>checkjob -v 371231 job 371231 (RM job '371231.headnode.localdomain') AName: casino State: Idle Creds: user:defusco group:sam account:sam class:idist qos:investor WallTime: 00:00:00 of 00:05:00 SubmitTime: Wed Oct 10 17:04:50 (Time Queued Total: 00:00:11 Eligible: 00:00:01) Total Requested Tasks: 12 Req[0] TaskCount: 12 Partition: ALL TasksPerNode: 12 NOTE: job cannot run (job has hold in place) Message[0] job violates class configuration 'procs too low for class 'idist' (12 < 24)'

When a job dies or never runs Always run checkjob v <jobid> Not enough SU balance Hardware issues Incorrect resource request ppn too large or too small mem too large or too small Access trouble Submit a ticket http://core.sam.pitt.edu/node/add/support-ticket

Summary Now you know a bit more about the HPC cluster available to the University of Pittsburgh. In particular, you Know how to access Frank using a SSH client Know how to transfer files to and from Frank Know some basic Linux commands for manipulating files and directories and for navigating the file system Know the importance of the pipe: Understand how packages and environment variables are set using Environment Modules Know how to compile code Know how to write a basic PBS submission script Know how to submit jobs, query the state of jobs, and remove jobs from the queue For general documentation about the SaM cluster: http://core.sam.pitt.edu/frank

1 Problems and Issues Using Frank Login to Core and post a support ticket. 2 Fill in the support form and describe the issue in the Body: portion. Clicking on the SAVE button at the bottom will post the ticket to the SaM help desk.