High Performance Computing Workshop (Statistics) HPC 101 Dr. Charles J Antonelli LSAIT ARS January, 2013.

Slides:



Advertisements
Similar presentations
Operating System Structures
Advertisements

© 2007 IBM Corporation IBM Global Engineering Solutions IBM Blue Gene/P Job Submission.
High Performance Computing Workshop HPC 101 Dr. Charles J Antonelli LSAIT ARS February, 2014.
Setting up of condor scheduler on computing cluster Raman Sehgal NPD-BARC.
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.
Introduction to HPC Workshop October Introduction Rob Lane HPC Support Research Computing Services CUIT.
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.
High Performance Computing (HPC) at Center for Information Communication and Technology in UTM.
Flux for PBS Users HPC 105 Dr. Charles J Antonelli LSAIT ARS August, 2013.
HPCC Mid-Morning Break Interactive High Performance Computing Dirk Colbry, Ph.D. Research Specialist Institute for Cyber Enabled Discovery.
Introduction to UNIX/Linux Exercises Dan Stanzione.
Research Computing with Newton Gerald Ragghianti Newton HPC workshop Sept. 3, 2010.
Introduction to the Linux Command Line for High-Performance Computing Dr. Charles J Antonelli LSAIT ARS October, 2014.
 Accessing the NCCS Systems  Setting your Initial System Environment  Moving Data onto the NCCS Systems  Storing Data on the NCCS Systems  Running.
Guide to Linux Installation and Administration, 2e1 Chapter 8 Basic Administration Tasks.
Advanced High Performance Computing Workshop HPC 201 Dr. Charles J Antonelli LSAIT RSG October 30, 2013.
Introduction to HPC resources for BCB 660 Nirav Merchant
VIPBG LINUX CLUSTER By Helen Wang March 29th, 2013.
Bigben Pittsburgh Supercomputing Center J. Ray Scott
March 3rd, 2006 Chen Peng, Lilly System Biology1 Cluster and SGE.
17-April-2007 High Performance Computing Basics April 17, 2007 Dr. David J. Haglin.
Lab System Environment
High Performance Computing Workshop HPC 101 Dr. Charles J Antonelli LSAIT ARS June, 2014.
High Performance Computing: Technologies and Opportunities Dr. Charles J Antonelli LSAIT ARS May, 2013.
Introduction to Using SLURM on Discover Chongxun (Doris) Pan September 24, 2013.
CCPR Workshop Introduction to the Cluster July 13, 2006.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
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.
HPC for Statistics Grad Students. A Cluster Not just a bunch of computers Linked CPUs managed by queuing software – Cluster – Node – CPU.
High Performance Computing on Flux EEB 401 Charles J Antonelli Mark Champe LSAIT ARS September, 2014.
Introduction to the Linux Command Line for High-Performance Computing Dr. Charles J Antonelli LSAIT ARS May, 2014.
Getting Started on Emerald Research Computing Group.
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.
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.
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.
Parallel Programming Workshop HPC 470 August, 2015.
Advanced High Performance Computing Workshop HPC 201 Mark Champe, LSAIT ARS Dr. Alexander Gaenko, ARC-TS Seth Meyer, ITS CS February, 2016.
Advanced High Performance Computing Workshop HPC 201 Dr Charles J Antonelli, LSAIT ARS Mark Champe, LSAIT ARS Dr Alexander Gaenko, ARC-TS Seth Meyer, ITS.
A Web Based Job Submission System for a Physics Computing Cluster David Jones IOP Particle Physics 2004 Birmingham 1.
© 2011 Pittsburgh Supercomputing Center XSEDE 2012 Intro To Our Environment John Urbanic Pittsburgh Supercomputing Center July, 2012.
An Brief Introduction Charlie Taylor Associate Director, Research Computing UF Research Computing.
Advanced Computing Facility Introduction
Hackinars in Bioinformatics
GRID COMPUTING.
Welcome to Indiana University Clusters
PARADOX Cluster job management
Introduction to Flux (Statistics)
HPC usage and software packages
OpenPBS – Distributed Workload Management System
Welcome to Indiana University Clusters
How to use the HPCC to do stuff
Architecture & System Overview
Postdoctoral researcher Department of Environmental Sciences, LSU
Welcome to our Nuclear Physics Computing System
College of Engineering
Welcome to our Nuclear Physics Computing System
Introduction to High Performance Computing Using Sapelo2 at GACRC
Quick Tutorial on MPICH for NIC-Cluster
Working in The IITJ HPC System
Presentation transcript:

High Performance Computing Workshop (Statistics) HPC 101 Dr. Charles J Antonelli LSAIT ARS January, 2013

Credits Contributors: Brock Palen (CoE-IT CAC) Jeremy Hallum (MSIS) Tony Markel (MSIS) Bennet Fauber (CoE-IT CAC) LSAIT ARS UM CoE-IT CAC 1/13cja 20132

Roadmap Flux Mechanics High Performance Computing Flux Architecture Flux Batch Operations Introduction to Scheduling 1/13cja 20133

Flux Mechanics 1/13cja 20134

Using Flux Three basic requirements to use Flux: 1.A Flux account 2.A Flux allocation 3.An MToken (or a Software Token) 1/13cja 20135

Using Flux 1.A Flux account Allows login to the Flux login nodes Develop, compile, and test code Available to members of U-M community, free Get an account by visiting on on on 1/13cja 20136

Using Flux 2.A Flux allocation Allows you to run jobs on the compute nodes Current rates: $18 per core-month for Standard Flux $18 per core-month for Standard Flux $24.35 per core-month for BigMem Flux $8 subsidy per core month for LSA and Engineering Details at ml ml ml To inquire about Flux allocations please flux- flux- 1/13cja 20137

Using Flux 3.An MToken (or a Software Token) Required for access to the login nodes Improves cluster security by requiring a second means of proving your identity You can use either an MToken or an application for your mobile device (called a Software Token) for this Information on obtaining and using these tokens at ctor.html ctor.html ctor.html 1/13cja 20138

Logging in to Flux ssh flux-login.engin.umich.edu MToken (or Software Token) required You will be randomly connected a Flux login node Currently flux-login1 or flux-login2 Firewalls restrict access to flux-login. To connect successfully, either Physically connect your ssh client platform to the U-M campus wired network, or Use VPN software on your client platform, or Use ssh to login to an ITS login node, and ssh to flux-login from there 1/13cja 20139

Modules The module command allows you to specify what versions of software you want to use module list -- Show loaded modules module load name -- Load module name for use module avail -- Show all available modules module avail name -- Show versions of module name* module unload name -- Unload module name module-- List all options Enter these commands at any time during your session A configuration file allows default module commands to be executed at login Put module commands in file ~/privatemodules/default Don’t put module commands in your.bashrc /.bash_profile 1/13cja

Flux environment The Flux login nodes have the standard GNU/Linux toolkit: make, autoconf, awk, sed, perl, python, java, emacs, vi, nano, … Watch out for source code or data files written on non-Linux systems Use these tools to analyze and convert source files to Linux format file dos2unix, mac2unix 1/13cja

Lab 1 Task: Invoke R interactively on the login node module load R module list Rq() Please run only very small computations on the Flux login nodes, e.g., for testing 1/13cja

Lab 2 Task: Run R in batch mode module load R Copy sample code to your login directory cd cp ~cja/stats-sample-code.tar.gz. tar -zxvf stats-sample-code.tar.gz cd./stats-sample-code Examine lab2.pbs and lab2.R Edit lab2.pbs with your favorite Linux editor Change #PBS -M address to your own 1/13cja

Lab 2 Task: Run R in batch mode Submit your job to Flux qsub lab2.pbs Watch the progress of your job qstat -u uniqname where uniqname is your own uniqname When complete, look at the job’s output less lab2.out 1/13cja

Lab 3 Task: Use the multicore package in R The multicore package allows you to use multiple cores on a single node module load R cd ~/stats-sample-code Examine lab3.pbs and lab3.R Edit lab3.pbs with your favorite Linux editor Change #PBS -M address to your own 1/13cja

Lab 3 Task: Use the multicore package in R Submit your job to Flux qsub lab3.pbs Watch the progress of your job qstat -u uniqname where uniqname is your own uniqname When complete, look at the job’s output less lab3.out 1/13cja

Lab 4 Task: Another multicore example in R module load R cd ~/stats-sample-code Examine lab4.pbs and lab4.R Edit lab4.pbs with your favorite Linux editor Change #PBS -M address to your own 1/13cja

Lab 4 Task: Another multicore example in R Submit your job to Flux qsub lab4.pbs Watch the progress of your job qstat -u uniqname where uniqname is your own uniqname When complete, look at the job’s output less lab4.out 1/13cja

Lab 5 Task: Run snow interactively in R The snow package allows you to use cores on multiple nodes module load R cd ~/stats-sample-code Examine lab5.R Start an interactive PBS session qsub -I -V -l procs=3 -l walltime=30:00 -A stats_flux -l qos=flux -q flux 1/13cja

Lab 5 Task: Run snow interactively in R cd $PBS_O_WORKDIR Run snow in the interactive PBS session R CMD BATCH --vanilla lab5.R lab5.out … ignore any “Connection to lifeline lost” message 1/13cja

Lab 6 Task: Run snowfall in R The snowfall package is similar to snow, and allows you to change the number of cores used without modifying your R code module load R cd ~/stats-sample-code Examine lab6.pbs and lab6.R Edit lab6.pbs with your favorite Linux editor Change #PBS -M address to your own 1/13cja

Lab 6 Task: Run snowfall in R Submit your job to Flux qsub lab6.pbs Watch the progress of your job qstat -u uniqname where uniqname is your own uniqname When complete, look at the job’s output less lab6.out 1/13cja

Lab 7 Task: Run parallel MATLAB Distribute parfor iterations over multiple cores on multiple nodes Do this once: mkdir ~/matlab/ cd ~/matlab wget 1/13cja

Lab 7 Task: Run parallel MATLAB Start an interactive PBS session module load matlab qsub -I -V -l nodes=2:ppn=3 -l walltime=30:00 -A stats_flux -l qos=flux -q flux Start MATLAB matlab -nodisplay 1/13cja

Lab 7 Task: Run parallel MATLAB Set up a matlabpool sched = findResource('scheduler', 'type', 'mpiexec') set(sched, 'MpiexecFileName', '/home/software/rhel6/mpiexec/bin/mpiexec') set(sched, 'EnvironmentSetMethod', 'setenv') %use the 'sched' object when calling matlabpool %the syntax for matlabpool must use the (sched, N) format matlabpool (sched, 6) … ignore “Found pre-existing parallel job(s)” warnings 1/13cja

Lab 7 Task: Run parallel MATLAB Run a simple parfor ticx=0; parfor i=1: x=x+i;endtoc Close the matlabpool matlabpool close 1/13cja

Compiling Code Assuming default module settings Use mpicc/mpiCC/mpif90 for MPI code Use icc/icpc/ifort with -mp for OpenMP code Serial code, Fortran 90: ifort -O3 -ipo -no-prec-div –xHost -o prog prog.f90 Serial code, C: icc -O3 -ipo -no-prec-div –xHost –o prog prog.c MPI parallel code: mpicc -O3 -ipo -no-prec-div –xHost -o prog prog.c mpirun -np 2./prog 1/13cja

Lab Task: compile and execute simple programs on the Flux login node Copy sample code to your login directory: cd cp ~brockp/cac-intro-code.tar.gz. tar -xvzf cac-intro-code.tar.gz cd./cac-intro-code Examine, compile & execute helloworld.f90: ifort -O3 -ipo -no-prec-div -xHost -o f90hello helloworld.f90./f90hello Examine, compile & execute helloworld.c: icc -O3 -ipo -no-prec-div -xHost -o chello helloworld.c./chello Examine, compile & execute MPI parallel code: mpicc -O3 -ipo -no-prec-div -xHost -o c_ex01 c_ex01.c … ignore the “feupdateenv is not implemented and will always fail” warning mpirun -np 2./c_ex01 … ignore runtime complaints about missing NICs 1/13cja

Makefiles The make command automates your code compilation process Uses a makefile to specify dependencies between source and object files The sample directory contains a sample makefile To compile c_ex01 : make c_ex01 To compile all programs in the directory make To remove all compiled programs make clean To make all the programs using 8 compiles in parallel make -j8 1/13cja

High Performance Computing 1/13 cja

Advantages of HPC Cheaper than the mainframe More scalable than your laptop Buy or rent only what you need COTS hardware COTS software COTS expertise 1/13cja

Disadvantages of HPC Serial applications Tightly-coupled applications Truly massive I/O or memory requirements Difficulty/impossibility of porting software No COTS expertise 1/13cja

Programming Models Two basic parallel programming models Message-passing The application consists of several processes running on different nodes and communicating with each other over the network Used when the data are too large to fit on a single node, and simple synchronization is adequate “Coarse parallelism” Implemented using MPI (Message Passing Interface) libraries Multi-threaded The application consists of a single process containing several parallel threads that communicate with each other using synchronization primitives Used when the data can fit into a single process, and the communications overhead of the message-passing model is intolerable “Fine-grained parallelism” or “shared-memory parallelism” Implemented using OpenMP (Open Multi-Processing) compilers and libraries Both 1/13cja

Good parallel Embarrassingly parallel RSA Challenges, password cracking, … Regular structures Divide&conquer, e.g. Quicksort Pipelined: N-body problems, matrix multiplication O(n 2 ) -> O(n) 1/13cja

Less good parallel Serial algorithms Those that don’t parallelize easily Irregular data & communications structures E.g., surface/subsurface water hydrology modeling Tightly-coupled algorithms Unbalanced algorithms Master/worker algorithms, where the worker load is uneven 1/13cja

Amdahl’s Law If you enhance a fraction f of a computation by a speedup S, the overall speedup is: 1/13cja

Amdahl’s Law 1/13cja

Flux Architecture 1/13cja

The Flux cluster … 1/13cja

Behind the curtain nyx flux … shared 1/13cja

A Flux node 12 Intel cores 48 GB RAM Local disk EthernetInfiniBand 1/13cja

A Newer Flux node 16 Intel cores 64 GB RAM Local disk EthernetInfiniBand 1/13cja

A Flux BigMem node 1 TB RAM Local disk EthernetInfiniBand 1/13cja Intel cores

Flux hardware (January 2012) 8,016 Intel cores200 Intel BigMem cores 632 Flux nodes5 Flux BigMem nodes 48 GB RAM/node1 TB RAM/ BigMem node 4 GB RAM/core (average)25 GB RAM/BigMem core 4X Infiniband network (interconnects all nodes) 40 Gbps, <2 us latency Latency an order of magnitude less than Ethernet Lustre Filesystem Scalable, high-performance, open Supports MPI-IO for MPI jobs Mounted on all login and compute nodes 1/13cja

Flux software Default Software: Intel Compilers with OpenMPI for Fortran and C Optional software: PGI Compilers Unix/GNU tools gcc/g++/gfortran Licensed software: Abacus, ANSYS, Mathematica, Matlab, R, STATA SE, … See You can choose software using the module command 1/13cja

Flux network All Flux nodes are interconnected via Infiniband and a campus-wide private Ethernet network The Flux login nodes are also connected to the campus backbone network The Flux data transfer node will soon be connected over a 10 Gbps connection to the campus backbone network This means The Flux login nodes can access the Internet The Flux compute nodes cannot If Infiniband is not available for a compute node, code on that node will fall back to Ethernet communications 1/13cja

Flux data Lustre filesystem mounted on /scratch on all login, compute, and transfer nodes 342TB of short-term storage for batch jobs Large, fast, short-term NFS filesystems mounted on /home and /home2 on all nodes 40 GB of storage per user for development & testing Small, slow, long-term 1/13cja

Flux data Flux does not provide large, long-term storage Alternatives: ITS Value Storage Departmental server CAEN can mount your storage on the login nodes Issue df –kh command on a login node to see what other groups have mounted 1/13cja

Globus Online Features High-speed data transfer, much faster than SCP or SFTP Reliable & persistent Minimal client software: Mac OS X, Linux, Windows GridFTP Endpoints Gateways through which data flow Exist for XSEDE, OSG, … UMich: umich#flux, umich#nyx Add your own server endpoint: contact flux-support Add your own client endpoint! More information 1/13cja

Flux Batch Operations 1/13cja

Portable Batch System All production runs are run on the compute nodes using the Portable Batch System (PBS) PBS manages all aspects of cluster job execution except job scheduling Flux uses the Torque implementation of PBS Flux uses the Moab scheduler for job scheduling Torque and Moab work together to control access to the compute nodes PBS puts jobs into queues Flux has a single queue, named flux 1/13cja

Cluster workflow You create a batch script and submit it to PBS PBS schedules your job, and it enters the flux queue When its turn arrives, your job will execute the batch script Your script has access to any applications or data stored on the Flux cluster When your job completes, anything it sent to standard output and error are saved and returned to you You can check on the status of your job at any time, or delete it if it’s not doing what you want A short time after your job completes, it disappears 1/13cja

Sample serial script #PBS -N yourjobname #PBS -V #PBS -A youralloc_flux #PBS -l qos=flux #PBS -q flux #PBS –l procs=1,walltime=00:05:00 #PBS -M your address #PBS -m abe #PBS -j oe #Your Code Goes Below: cd $PBS_O_WORKDIR./f90hello 1/13cja

Sample batch script #PBS -N yourjobname #PBS -V #PBS -A youralloc_flux #PBS -l qos=flux #PBS -q flux #PBS –l procs=16,walltime=00:05:00 #PBS -M your address #PBS -m abe #PBS -j oe #Your Code Goes Below: cat $PBS_NODEFILE cd $PBS_O_WORKDIR mpirun./c_ex01 Lists the node(s) your job ran on No need to specify -np Change to submission directory 1/13cja

Basic batch commands Once you have a script, submit it: qsub scriptfile $ qsub singlenode.pbs nyx.engin.umich.edu You can check on the job status: qstat jobid $ qstat nyx.engin.umich.edu: Req'd Req'd Elap Req'd Req'd Elap Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time nyx.engi cja flux hpc101i :05 Q -- To delete your job qdel jobid $ qdel $ 1/13cja

Lab Task: Run an MPI job on 8 cores Compile c_ex05 cd ~/cac-intro-code make c_ex05 Edit file run with your favorite Linux editor Change #PBS –M address to your own I don’t want Brock to get your ! Change #PBS –A allocation to stats_flux, or to your own allocation, if desired Change #PBS –l allocation to flux Submit your job qsub run 1/13cja

PBS attributes As always, man qsub is your friend -N : sets the job name, can’t start with a number -V : copy shell environment to compute node -A youralloc_flux: sets the allocation you are using -l qos=flux: sets the quality of service parameter -q flux : sets the queue you are submitting to -l : requests resources, like number of cores or nodes -M : whom to , can be multiple addresses -m : when to a=job abort, b=job begin, e=job end -j oe: join STDOUT and STDERR to a common file -I : allow interactive use -X : allow X GUI use 1/13cja

PBS resources (1) A resource ( -l ) can specify: Request wallclock (that is, running) time -l walltime=HH:MM:SS Request C MB of memory per core -l pmem=Cmb Request T MB of memory for entire job -l mem=Tmb Request M cores on arbitrary node(s) -l procs=M Request a token to use licensed software -l gres=stata:1 -l gres=matlab -l gres=matlab%Communication_toolbox 1/13cja

PBS resources (2) A resource ( -l ) can specify: For multithreaded code: Request M nodes with at least N cores per node -l nodes=M:ppn=N Request M nodes with exactly N cores per node -l nodes=M:tpn=N (you’ll only use this for specific algorithms) 1/13cja

Interactive jobs You can submit jobs interactively: qsub -I -V -l procs=2 -l walltime=15:00 -A youralloc_flux -l qos=flux –q flux This queues a job as usual Your terminal session will be blocked until the job runs When it runs, you will be connected to one of your nodes Invoked serial commands will run on that node Invoked parallel commands (e.g., via mpirun ) will run on all of your nodes When you exit the terminal session your job is deleted Interactive jobs allow you to Test your code on cluster node(s) Execute GUI tools on a cluster node with output on your local platform’s X server Utilize a parallel debugger interactively 1/13cja

Lab Task: Run an interactive job Enter this command (all on one line): qsub -I -V -l procs=2 -l walltime=15:00 -A FluxTraining_flux -l qos=flux -q flux When your job starts, you’ll get an interactive shell Copy and paste the batch commands from the “run” file, one at a time, into this shell Experiment with other commands After fifteen minutes, your interactive shell will be killed 1/13cja

Introduction to Scheduling 1/13cja

The Scheduler (1/3) Flux scheduling policies: The job’s queue determines the set of nodes you run on The job’s account and qos determine the allocation to be charged If you specify an inactive allocation, your job will never run The job’s resource requirements help determine when the job becomes eligible to run If you ask for unavailable resources, your job will wait until they become free There is no pre-emption 1/13cja

The Scheduler (2/3) Flux scheduling policies : If there is competition for resources among eligible jobs in the allocation or in the cluster, two things help determine when you run: How long you have waited for the resource How much of the resource you have used so far This is called “fairshare” The scheduler will reserve nodes for a job with sufficient priority This is intended to prevent starving jobs with large resource requirements 1/13cja

The Scheduler (3/3) Flux scheduling policies : If there is room for shorter jobs in the gaps of the schedule, the scheduler will fit smaller jobs in those gaps This is called “backfill” Cores Time 1/13cja

Gaining insight There are several commands you can run to get some insight over the scheduler’s actions: freenodes : shows the number of free nodes and cores currently available showq : shows the state of the queue (like qstat -a ), except shows running jobs in order of finishing mdiag –p -t flux : shows the factors used in computing job priority checkjob jobid : Can show why your job might not be starting showstart –e all : Gives you a coarse estimate of job start time; use the smallest value returned 1/13cja

More advanced scheduling Job Arrays Dependent Scheduling 67 cja 20131/1367

Job Arrays Submit copies of identical jobs Submit copies of identical jobs Invoked via qsub –t: Invoked via qsub –t: qsub –t array-spec pbsbatch.txt Where array-spec can be m-na,b,cm-n%slotlimite.g. qsub –t 1-50%10Fifty jobs, numbered 1 through 50, only ten can run simultaneously $PBS_ARRAYID records array identifier $PBS_ARRAYID records array identifier 68 cja 20131/1368

Dependent scheduling Submit jobs whose execution scheduling depends on other jobs Submit jobs whose execution scheduling depends on other jobs Invoked via qsub –W: Invoked via qsub –W: qsub -W depend=type:jobid[:jobid]… Where depend can be afterSchedule after jobids have started afterokSchedule after jobids have finished, only if no errors afternotokSchedule after jobids have finished, only if errors afteranySchedule after jobids have finished, regardless of status before,beforeok,beforenotok,beforeany 69 cja 20131/1369

Dependent scheduling Where depend can be (cont’t) beforeWhen this job has started, jobids will be scheduled beforeokAfter this job completes without errors, jobids will be scheduled beforenotokAfter this job completes without errors, jobids will be scheduled afteranyAfter this job completes, regardless of status, jobids will be scheduled 70 cja 20131/1370

Flux On-Demand Pilot Alternative to a static allocation Pay only for the core time you use Pros Accommodates “bursty” usage patterns Cons Limit of 50 cores total Limit of 25 cores for any user FoD pilot has ended FoD pilot users continue to be supported FoD service is being defined To inquire about FoD allocations please 1/13cja

Flux Resources UMCoECAC’s YouTube channel U-M Office of Research Cyberinfrastructure Flux summary page Getting an account, basic overview (use menu on left to drill down) How to get started at the CAC, plus cluster news, RSS feed and outages XSEDE information, Flux in grant applications, startup & retention offers Resources | Systems | Flux | PBS Detailed PBS information for Flux use For assistance: Read by a team of people Cannot help with programming questions, but can help with operational Flux and basic usage questions 1/13cja

Summary The Flux cluster is just a collection of similar Linux machines connected together to run your code, much faster than your desktop can Command-line scripts are queued by a batch system and executed when resources become available Some important commands are qsub qstat -u username qdel jobid checkjob Develop and test, then submit your jobs in bulk and let the scheduler optimize their execution 1/13cja

Any Questions? Charles J. Antonelli LSAIT Research Systems Group /13cja

References CAC supported Flux software, (accessed August 2011) 5.J. L. Gustafson, “Reevaluating Amdahl’s Law,” chapter for book, Supercomputers and Artificial Intelligence, edited by Kai Hwang, (accessed November 2011). 6.Mark D. Hill and Michael R. Marty, “Amdahl’s Law in the Multicore Era,” IEEE Computer, vol. 41, no. 7, pp , July (accessed November 2011). 7.InfiniBand, (accessed August 2011). 8.Intel C and C++ Compiler 1.1 User and Reference Guide, us/cpp/lin/compiler_c/index.htm (accessed August 2011). us/cpp/lin/compiler_c/index.htm us/cpp/lin/compiler_c/index.htm 9.Intel Fortran Compiler 11.1 User and Reference Guide, us/fortran/lin/compiler_f/index.htm (accessed August 2011). us/fortran/lin/compiler_f/index.htmhttp://software.intel.com/sites/products/documentation/hpc/compilerpro/en- us/fortran/lin/compiler_f/index.htm 10.Lustre file system, (accessed August 2011) Torque User’s Manual, (accessed August 2011) Jurg van Vliet & Flvia Paginelli, Programming Amazon EC2,’Reilly Media, ISBN /13cja