ISG We build general capability Job Submission on the Olympus Cluster J. DePasse; S. Brown, PhD; T. Maiden Pittsburgh Supercomputing Center Public Health.

Slides:



Advertisements
Similar presentations
Chapter 3. MPI MPI = Message Passing Interface Specification of message passing libraries for developers and users –Not a library by itself, but specifies.
Advertisements

Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, UC Berkeley, Univ. of Illinois, UTEP Basic Portable Batch System (PBS)
NETW-240 Shells Last Update Copyright Kenneth M. Chipps Ph.D. 1.
Southgreen HPC system Concepts Cluster : compute farm i.e. a collection of compute servers that can be shared and accessed through a single “portal”
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.
Job Submission on WestGrid Feb on Access Grid.
Git/Unix Lab March Version Control ●Keep track of changes to a project ●Serves as a backup ●Revert to previous version ●Work on the same files concurrently.
1 Some basic Unix commands u Understand the concept of loggin into and out of a Unix shell u Interact with the system in a basic way through keyboard and.
Understanding the Basics of Computational Informatics Summer School, Hungary, Szeged Methos L. Müller.
1 SEEM3460 Tutorial Unix Introduction. 2 Introduction What is Unix? An operation system (OS), similar to Windows, MacOS X Why learn Unix? Greatest Software.
7/17/2009 rwjBROOKDALE COMMUNITY COLLEGE1 Unix Comp-145 C HAPTER 2.
ISG We build general capability Purpose After this tutorial, you should: Be comfortable submitting work to the batch queuing system of olympus and be familiar.
Linux Shell. 2 Linux Command-Line Interface ■ Linux shells: A shell is a command interpreter that allows you to type commands from the keyboard to interact.
Using Macs and Unix Nancy Griffeth January 6, 2014 Funding for this workshop was provided by the program “Computational Modeling and Analysis of Complex.
Shell Programming, or Scripting Shirley Moore CPS 5401 Fall August 29,
Introduction to UNIX/Linux Exercises Dan Stanzione.
ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson, 2012, Jan 18, 2012assignprelim.1 Assignment Preliminaries ITCS 4145/5145 Spring 2012.
UNIX command line. In this module you will learn: What is the computer shell What is the command line interface (or Terminal) What is the filesystem tree.
Linux environment ● Graphical interface – X-window + window manager ● Text interface – terminal + shell.
ISG We build general capability Introduction to Olympus Shawn T. Brown, PhD ISG MISSION 2.0 Lead Director of Public Health Applications Pittsburgh Supercomputing.
Unix Basics Chapter 4.
VIPBG LINUX CLUSTER By Helen Wang March 29th, 2013.
Intro to Linux/Unix (user commands) Box. What is Linux? Open Source Operating system Developed by Linus Trovaldsa the U. of Helsinki in Finland since.
Bigben Pittsburgh Supercomputing Center J. Ray Scott
Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:
17-April-2007 High Performance Computing Basics April 17, 2007 Dr. David J. Haglin.
Chapter 10: File-System Interface 10.1 Silberschatz, Galvin and Gagne ©2011 Operating System Concepts – 8 th Edition 2014.
Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Linux Operations and Administration
UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific.
Using the BYU Supercomputers. Resources Basic Usage After your account is activated: – ssh You will be logged in to an interactive.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
HPC for Statistics Grad Students. A Cluster Not just a bunch of computers Linked CPUs managed by queuing software – Cluster – Node – CPU.
Introduction to Programming Using C An Introduction to Operating Systems.
Agenda Basic Unix Commands (Chapters 2 & 3) Miscellaneous Commands: which, passwd, date, ps / kill Working with Files: file, touch, cat, more, less, grep,
Software Tools Using PBS. Software tools Portland compilers pgf77 pgf90 pghpf pgcc pgCC Portland debugger GNU compilers g77 gcc Intel ifort icc.
Cluster Computing Applications for Bioinformatics Thurs., Sept. 20, 2007 process management shell scripting Sun Grid Engine running parallel programs.
ISG We build general capability Introduction to Olympus Shawn T. Brown, PhD ISG MISSION 2.0 Lead Director of Public Health Applications Pittsburgh Supercomputing.
THE C PROGRAMMING ENVIRONMENT. Four parts of C environment  Main menu  Editor status line and edit window  Compiler message window  “Hot Keys” quick.
Portable Batch System – Definition and 3 Primary Roles Definition: PBS is a distributed workload management system. It handles the management and monitoring.
 Simple UNIX commands  I/O techniques in C++  Solutions to Lab#0 problems  Solutions to Lab#1 problems 1.
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.
INTRODUCTION TO SHELL SCRIPTING By Byamukama Frank
INTRODUCTION TO XSEDE. INTRODUCTION  Extreme Science and Engineering Discovery Environment (XSEDE)  “most advanced, powerful, and robust collection.
Assignprelim.1 Assignment Preliminaries © 2012 B. Wilkinson/Clayton Ferner. Modification date: Jan 16a, 2014.
Using ROSSMANN to Run GOSET Studies Omar Laldin ( using materials from Jonathan Crider, Harish Suryanarayana ) Feb. 3, 2014.
Bash Scripting CIRC Summer School 2016 Baowei Liu CIRC Summer School 2016 Baowei Liu.
Advanced Computing Facility Introduction
By Jonathan Rinfret UNIX/LINUX By Jonathan Rinfret
GRID COMPUTING.
UNIX To do work for the class, you will be using the Unix operating system. Once connected to the system, you will be presented with a login screen. Once.
Welcome to Indiana University Clusters
PARADOX Cluster job management
Unix Scripts and PBS on BioU
CIRC Winter Boot Camp 2017 Baowei Liu
HPC usage and software packages
California State University Fresno
Assignment Preliminaries
Practice #0: Introduction
NGS computation services: APIs and Parallel Jobs
Postdoctoral researcher Department of Environmental Sciences, LSU
LING 408/508: Computational Techniques for Linguists
Compiling and Job Submission
Introduction to High Performance Computing Using Sapelo2 at GACRC
Quick Tutorial on MPICH for NIC-Cluster
Working in The IITJ HPC System
Presentation transcript:

ISG We build general capability Job Submission on the Olympus Cluster J. DePasse; S. Brown, PhD; T. Maiden Pittsburgh Supercomputing Center Public Health Applications 1

ISG We build general capability Learning Objectives After this tutorial, you should: Be comfortable submitting and monitoring jobs through the batch queuing system on Olympus Be able to modify the supplied job scripts for your own work Understand how to efficiently use the filesystems on Olympus Know where to go for help… 2

ISG We build general capability Resources The Olympus git repository contains the source code for the examples used in this tutorial; all of the presentations today are available for downloadOlympus git repository The Olympus cluster wiki is provides specific documentation for OlympusOlympus cluster wiki The website of the Pittsburgh Supercomputing Center contains additional training materials and account management tools.Pittsburgh Supercomputing Centertrainingaccount with questions about available software, problems with your account, and requests for advanced 3

ISG We build general capability Types of Jobs Serial Jobs: individual, independent jobs that run using a single core of a single processor on a single node Multicore Parallel Jobs: use multiple cores on a single node e.g., OpenMPOpenMP Message Passing Jobs: can use multiple cores distributed over multiple nodes e.g., Open MPIOpen MPI 4 Notes: These categories are fuzzy; Jobs that fit into more than one (or all) aren’t uncommon Boils down to what resources are needed: How many nodes? How many cores?

ISG We build general capability Job Scripts A job script is a step-by-step recipe for completing work on a compute cluster The recipe is written in a scripting language; we will use bash in our examples In order to submit this job script on the Olympus compute cluster, we will use the qsub command 5 Examples can be found on the Olympus gitlab site:

ISG We build general capability PBS Directives in a Job Submission Script 6 #!/bin/bash –f # Remarks: A line beginning with # is a comment. # A line beginning with #PBS is a PBS directive. # PBS directives must come first; any directives after the first executable statement are ignored. #PBS -N test.bash # #PBS -o stdout_file # #PBS -e stderr_file The “hash-bang” or “shebang” specifies the scripting language used An active PBS directive Commented-out PBS directives

ISG We build general capability Simple Job Submission Script 7 #!/bin/bash –f # Set PBS Directives… #PBS -N test.bash #PBS –l nodes=1:ppn=1 # Get your input files together cp ~/inputs.txt myInput.txt #Run your program myProgram –i myInput.txt –o myOutput.txt #Collect the output cp myOutput.txt ~/outputs

ISG We build general capability Submitting a Job and Monitoring Progress After submitting your script with qsub it will be entered into the queue A queue is a prioritized list of jobs to be completed Once submitted, the status of your job can be viewed with qstat “qstat –a” gives you more verbose output After your job completes the output of your job will be available in your home directory 8

ISG We build general capability Example Jobs Clone the git repository with the command: “git clone Enter the examples directory: “cd olympus.git/examples” View the directories by typing “ls”, you should see: “sanity”: a basic diagnostic sanity check “mpihello”: a simple example of a parallel multinode mpi code “flute”: a basic, real-world example of parallel MPI code “fred”: a basic, real-world example of OpenMP multithreaded code 9

ISG We build general capability Example: “sanity” Go to the examples/sanity directory View the contents using “less”: “less sanity.bash” Navigate with up and down arrows, exit by pressing ‘q’ The script is heavily commented, explaining each step Submit your job! “qsub sanity.bash” 10 Can also view here:

ISG We build general capability Using Olympus File Systems Each node in Olympus has a “local” disk, physically located inside the node. Fast, reliable for work on its own node Olympus has a “shared” file system that is accessible to all nodes via the network. This is where your home directory is Home directory is persistent, and contents are never deleted While running, jobs should write output to the “local” disks. Local disks are for temporary work, will be periodically “scrubbed” For convenience, the “local” directory can be accessed on the head node through the path /net/ /tmp Example: if you want to go to the node n002’s local disk, it the path would be /net/n002/tmp. The local directory’s location is stored in the $LOCAL environment variable 11

ISG We build general capability What does this look like in a job submission script? 12 local_scratch_path="/net/$execution_compute_node$LOCAL“ # make a directory for this job; name created using job id local_working_dir_name="$PBS_JOBID.output.directory" local_working_dir_net_path="$local_scratch_path/$local_working_dir_name" # create the directory mkdir -p $local_working_dir_net_path # dump all environment variables to a compressed file env | gzip > $local_working_dir_net_path/$PBS_JOBID.env.gzip # create a symlink to the local working dir, available through the execution # compute nodes NFS export ln -s $local_working_dir_net_path $PBS_O_WORKDIR/$local_working_dir_name Set an environment variable defining the path to the “local” directory. Define a directory name that is unique to your job. Make that directory. Make the output of your job go to that directory Create a shortcut to your output so you can access it on the head node.

ISG We build general capability Try the other examples Navigate to the other directories (flute, fred, mpihello) Each contains a “README” text file with instructions for submission Each job should take only a few minutes, and will produce output in the same directory that you run qsub 13

ISG We build general capability Working in the shell “man”: Most important command of all. Opens the manual page for a command. “man man” to start. Type “q” to quit. “ls”: List files in a directory. Similar to “dir” in Windows/DOS “cd”: Change directory. Move up and down the directory tree. “less”: A pager that allows you to view (but not edit) a file’s contents. “vi”: The ubiquitous CLI text editor. 14

ISG We build general capability Text Editing with VI Type “i” to enter insert mode. Now you can navigate, delete, and type much the same as in other editors. Type “ESC” to exit insert mode Type “:w” to write you changes to disk Type “:q” to quit the vi editor 15