Introduction to Grid Engine

Size: px
Start display at page:

Download "Introduction to Grid Engine"

Transcription

1 Introduction to Grid Engine Workbook Edition 8 January 2011 Document reference:

2

3 Introduction to Grid Engine for ECDF Users Workbook

4 Introduction to Grid Engine for ECDF Users Author: Brian Fletcher, ITI Unix Section Previous title: Introduction to Sun Grid Engine Edition 8 January 2011

5 CONTENTS ABOUT THE COURSE... 3 MODULE 1:BASIC INTRODUCTION TO GRID ENGINE... 4 WHAT IS A GRID?... 5 THE ECDF CLUSTER (EDDIE)... 6 WHAT IS GRID ENGINE?... 7 BASIC JOB SUBMISSION... 8 TWO WAYS OF RUNNING GRID ENGINE... 9 THE COMMAND-LINE INTERFACE QSUB QSTAT QACCT QALTER QDEL PRACTICAL EXERCISE THE GRAPHICAL INTERFACE QMON PRACTICAL EXERCISE REQUESTING RESOURCES HOW TO REQUEST RESOURCES RUN TIME MEMORY AND PROCESSORS REQUESTING RESOURCES USING QMON RESERVING RESOURCES PARALLEL JOBS PARALLEL ENVIRONMENT ARRAY JOBS TROUBLESHOOTING LOGGING ON WHY DOES MY JOB NOT START LIMITS MORE QSTAT OPTIONS WHY DOES MY JOB STOP UNEXPECTEDLY? DOCUMENTATION MODULE 2: INTRODUCTION TO SHELL SCRIPTS INTRODUCTION MAKING SHELL SCRIPTS SYNTAX RULES SHELL VARIABLES COMMAND LINE ARGUMENTS PRACTICAL EXERCISE SHELL ARITHMETIC PRACTICAL EXERCISE

6 CONDITIONAL STATEMENTS TEST PRACTICAL EXERCISE LOOPING PRACTICAL EXERCISE READ CASE PRACTICAL EXERCISE ANSWERS TO PRACTICALS DOCUMENTATION

7 About the Course This course consists of two modules which may be run together, or individually as separate courses. The first module covers basic job submission using Grid Engine, and the second covers writing Unix shell scripts, based on material from the Edinburgh University Information Services Training Course. Module 1 Prerequisites: Knowledge of Unix equivalent to at least Unix 1 Some experience of shell scripting would be an advantage, but is not essential. Learning goals By the end of the course you should: understand the concept of a Grid know about ECDF from a user viewpoint understand what a scheduler is know how to submit jobs to the ECDF Module 2 Prerequisites: Knowledge of Unix equivalent to at least Unix 1 Learning goals By the end of the course you should: be able to write simple Shell scripts This workbook This workbook will lead you through both modules, with practical sessions on the way. 3

8 Module 1:Basic Introduction to Grid Engine 4

9 What is a grid? A collection of computing resources Cluster grids Campus grids Global grids The Grid Engine User s Guide defines a grid as a collection of computing resources that perform tasks. In its simplest form, a grid appears to users as a large system that provides a single point of access to powerful distributed resources. There are three main classes of grids. In order of increasing size, they are Cluster grids, Campus grids and Global grids. A Cluster Grid is a number of computers from a single organization or department which have been set up to work together. A Campus Grid extends this so that many departments from the same organisation can share computing resources. A Global Grid is a collection of Campus Grids which enable many organizations to create very large systems. 5

10 The ECDF Cluster (Eddie) The Compute part of the Edinburgh Compute and Data Facility (ECDF) is a purpose-built cluster grid known as Eddie. It was installed in 2007 in two phases. Phase 1 (replaced in 2010) consists of 128 nodes and Phase 2 (which will be replaced in 2011) consists of 118 nodes. Each node contains eight cores (or processors), making a total of 1968 cores altogether. 6

11 What is Grid Engine? Grid Engine is a Scheduler. To understand what this is, a little preamble is necessary. ECDF runs a Batch System. In practice, this means that a job submitted by a user will wait in a queue until the resources it requires are available. Usually it will not have long to wait as many jobs can be running at the same time. See the section Basic Job Submission for more information on this. Obviously there has to be some way for the system to know what resources each job in the queue needs, and to match this with those currently available before releasing jobs for execution. It is the job of the Scheduler to manage these resources, both before, during and after a job s journey through the system. In brief, a scheduler will: Orchestrate allocation of resources Accept jobs (user requests for resources) Send jobs to worker nodes Manage running jobs Log record of each job More about this will be covered in the section Basic Job Submission The term job in Grid Engine refers to a shell script containing the commands you wish to run. If you do not know how to write shell scripts, see the section Introduction to Shell Scripts 7

12 Basic Job Submission 8

13 Two ways of running Grid Engine Grid Engine can be run in either of two ways. The first is by typing Unix-like commands to specify resources and submit jobs. The commands we will look at are: qsub to submit a job to the queue, and request resources qstat to examine a job s current status qacct to get a job s accounting information qalter to change the attributes of pending jobs qdel to delete jobs from the queue The second way is to use a graphical interface, initiated with the qmon command. We shall look at each of these in turn. 9

14 The Command-line Interface 10

15 qsub This command sends a job, in the form of a shell script, to the Grid Engine queuing system. It does not accept executable files. In its simplest form, it would be a command something like: qsub myscript.sh where myscript.sh is a file containing the shell script you wish to run. Some options -o filename Send output to the file called filename -e filename Send error output to filename -cwd Run job in current working directory (default is home directory). -m followed by b, e, a or s (or any combination) sends mail message when job begins, ends, aborts, or is suspended -M user@host address to be used for m option -v variable[=value] defines or redefines an environment variable to be passed to the job. The = sign and value are optional. -V specifies that all environment variables are to be passed to the job -j yes Write output and error messages to the same file -l h_rt=h:m:s required runtime in hours:minutes:seconds (see p.25) Many more options are available. See the manual page for details. Qsub options can also be embedded in shell scripts, instead of on the command line. See the Introduction to Shell Scripts chapter for how to do this. Examples qsub -cwd -o outfile -e errfile myscript.sh qsub V -o outfile -m bae M me@myhost myscript.sh qsub v TERM myscript.sh qsub l h_rt=30 myscript.sh 11

16 qstat Once a job has been submitted, its current status can be examined with the command qstat, as long as the job has not finished. Information on finished jobs can be obtained using the qacct command (see below). In its simplest form, it would be a command something like: qstat and will produce a list of all pending or running jobs belonging to you, similar to the following. Note that each job has a job-id number, such as 5034 in the example below. The most common values for the state column are r for a job which is currently running, or qw for one which is queued and waiting. The letter E in the state column, such as Eqw, indicates that the scheduler has detected an error state. Examine your script to see if you have maybe requested resources incorrectly. See the troubleshooting section. job-id prior name user state submit/start at queue slots ja-task-id PC_0.1-NP_ bjf qw 05/17/ :53: simple.sh bjf r 05/17/ :53:03 1 some options -u username Show only jobs for username -u * Show jobs for all users -f Full listing by node -j job-id Detailed information on pending/running jobs, including reasons for a job being rejected. 12

17 qacct Qacct is a command which scans the accounting file and will produce accounting information in a variety of ways. The accounting file is not structured in any way, and accessing it can be wasteful of resources. qacct should only be used if necessary. To get information for a particular job, the command is qacct j job-id The j option causes qacct to produce its output in a different format from the other options below. Some other options -o owner name gives summary of system use by that owner (user) -o (on its own) gives data for all users (not recommended) -g group name gives summary of system use by members of a group The qacct command on its own will produce total figures Examples qacct o bjf qacct g scisup 13

18 qalter This command can be used to modify attributes of a job once it has been submitted and is in the Pending queue (see Note 2 below). The attributes to be modified are specified as options to the qalter command. For example, the following command will alter the stdout file for job to be the file junk: qalter -o junk The system should reply with a message similar to the following: modified stdout path list of job Some other options -e modify pathname for stderr -m followed by b, a, e (see qsub above) or n for no mail -M change mail address to which mail will be sent -N change name of job -l h_rt=h:m:s change runtime For a full list see the man page for qalter. Notes 1) If, for any reason, one of the specified attributes cannot be modified as requested, then none of the attributes will be modified. 2) Although many attributes can be altered while a job is running, in some cases these changes will not take effect until the job is re-run. 3) Qalter also appears as a button on the qmon Job Control windows for Pending and Running Jobs (see below). 14

19 qdel The qdel command is used to remove jobs from the pending queue. You might want to do this if you have submitted the wrong job or wish to withdraw it for any reason. The syntax is qdel job-id where job-id is the number of the job you wish to delete, as given by qsub or qstat. Note that unlike the other commands we have looked at, qdel does not require j before the job-id. If a job fails to delete, you can use the f flag to force deletion: qdel f job-id 15

20 Practical Exercise 1 Log in to eddie, using your UUN and EASE password. Use an editor to create a text file containing the following simple script: #!/bin/sh #$ -o junk hostname # # print date and time date This output from this script will contain the name of the host on which the script is running, and also the current date and time. It will send its output to a file called junk. Submit this job using the qsub command. Unless the job runs very quickly, you should be able to check its progress using qstat. If it's running too quickly, try adding a sleep command to give you more time. Submit the job again, using some other qsub options, such as m If you are confident with directories, experiment with the cwd option Try adding qsub options to the script, instead of just the command line. Modify the file in any way you like. You can also delete jobs from the queue by using the Delete button in the qmon Job Control window (see below). 16

21 The Graphical Interface 17

22 qmon The qmon command provides a graphical interface for submitting jobs. It is typed on the command line in the same way as qsub. It is a good idea to issue this command in background mode (by typing qmon&) so that it will continue running while you use foreground mode to work with your scripts and files. The first window to open is the Grid Engine splash window: followed by the qmon Main Control window: The buttons on this window allow you to submit jobs, examine the queue, and control many other aspects of Grid Engine. The button third from the left on the top row, is Submit Jobs, which you would use to tell qmon about which script you want to run. Submitting Jobs using qmon 18

23 Click the Submit Jobs button in the Main Control window. The following window will appear. Ensure the General tab is selected. You can specify the script you wish to run by typing its name in the box labelled Job Script, or you can browse for it by clicking the button to the right of the box. Your job should also be given a name, so that it can easily be located when checking its status (see below). By default, the system uses the name of your script file, but you may change this if you wish. Also, you can type the names for your job s stdin, stdout and stderr files in the relevant boxes. (These can also be specified in the command line or shell script, and the boxes here will be filled in automatically.) To run the job, click the Submit button in the right-hand panel. To close this window, click the Done button. The Advanced tab Clicking the Advanced tab will give a host of other options. The most useful will probably be Mail, in the middle column. This allows you to receive an when your job starts, ends, is aborted or suspended. Simply check the boxes next to the options you require, and enter your address in the Mail To box. These options can also be specified using the m 19

24 option in the qsub command line. See above for more details. The examples below show typical mail content for started and completed jobs. Job (course1.sh) Started User = bjf Queue = ecdf Host = eddie315.ecdf.ed.ac.uk Start Time = 12/03/ :52:16 Job (course1.sh) Complete User = bjf Queue = ecdf@eddie315.ecdf.ed.ac.uk Host = eddie315 Start Time = 12/03/ :52:16 End Time = 12/03/ :52:16 User Time = 00:00:00 System Time = 00:00:00 Wallclock Time = 00:00:00 CPU = 00:00:00 Max vmem = NA Exit Status = 0 Checking job status in qmon To view your job s status, go back to the Main Control panel and click the top left button (Job Control). The Job Control window will open. 20

25 If your job has not yet started executing, you should be able to see it in the Pending Jobs list, by clicking the appropriate tab. If it has started running, it will be in Running Jobs, and if it has run and terminated, you will find it in Finished Jobs. The figure above shows a typical Finished Jobs display. To make it easier to find your job, you can sort the list by any of the columns by clicking the appropriate heading (Jobid, Priority, Owner etc). Clicking the same heading a second time will reverse the order. Pending jobs can be removed from the queue by highlighting the job and clicking the Delete button in the right-hand panel. Running jobs can similarly be suspended or deleted. You cannot delete finished jobs from the list. They will remain there until cleared by the system. The Job Control window can be closed by clicking Done. 21

26 Practical Exercise 2 Repeat exercise 1 but this time use the qmon interface instead of qsub. 22

27 Requesting Resources 23

28 How to request Resources The qsub command described above has options which allow you to specify the time limit for your job, the number of CPUs you need, and the memory requirements. These resources are specified using the l option (lower case L) followed by the resource and quantity desired. It is also possible to request resources via the qmon graphical interface. Both methods are described below. UCSEUCSEUCSEUCSEUCS 24

29 Run Time You can set a time limit for your job using a command similar to qsub l h_rt=h:m:s jobscript.sh where H:M:S is the time limit in Hours:Minutes:Seconds, and jobscript.sh is the shell script that you wish to run. If any of the values is zero, it can be omitted as long as the colon remains. A single value, with no colons, will be treated as a number of seconds. There are four different runtime limits for various groups of nodes on Eddie. These are currently set to 30 minutes, 6 hours, 24 hours and 48 hours. You should get into the habit of specifying your required run time when you submit your job. If you do not do this, your jobs will go into the first available slot, no matter what the maximum run time is on that slot. This could mean that your job could be subject to a 30 minute maximum run time, unless you specify otherwise. 25

30 Memory and Processors Memory By default, the processing core running your job will have a memory allocation of 2Gb. If your job requires more than 2Gb, you should proceed as described below. Failure to do this will result in your job being killed when it becomes larger than 2GB. Within Eddie, memory is allocated in slots of either 2GB or 6GB. To allocate, say, 4GB to your job, there is a parallel environment (pe - see later) known as memory_2g which is used as follows: qsub -pe memory_2g 2 myjob.sh The number after memory_2g is the number of 2GB slots required, so 2 will give you 4GB, 3 will give you 6GB etc. The maximum number of slots you can request is 8. The environment memory_6g is used in an analogous way. Note that there are more 2GB slots available than 6GB slots, so your jobs should be released more quickly if you specify your requirements in terms of memory_2g rather than memory_6g.. Processors More than one processor will be required if you are doing true parallel processing - the most basic environment for this is called "OpenMP". To make use of more than one CPU core on a node, use OpenMP or one of the OpenMPI parallel environments by adding one of the following options to your qsub command: -pe OpenMP n where n is the number of CPU cores you want, up to a maximum of 8. If you request more than this, your job cannot run. -pe openmpi_smp8_mark2 n where n is the number of CPU cores you want, which must be a multiple of 8, up to a maximum of 1024 on 128 worker nodes. 26

31 Requesting resources using qmon Run time This can be set by clicking the large Request Resources button from the General tab of the Submit Job window. The window shown below will appear. Ensure the Hard Request option is lit, then double-click on h_rt in the list of resources. A further window will appear in which you can choose the required time limit for your job. Do not click the Infinity button, and remember that the maximum time for a job on Eddie is 48 hours. Remember also that if you do not specify a time limit, your job may end up in a queue whose limit is 30 minutes, and this may not be enough for your job to complete. Hard Resources are those which must be allocated before a job can be started. Soft Resources can be allocated while a job is running. 27

32 Memory and processors Parallel Environments such as memory and OpenMP can also be selected using qmon. Click the Advanced tab on the Submit Job window and in the top left you will see a box labelled Parallel Environment. Click the button to the right of this box, and a menu will appear from which you can select the required PE. The name of the PE will appear in the box, along with a number (defaulted to 1). This is the number of units selected, and can be changed as required. 28

33 Reserving resources If you have a big parallel job which won't run because the cluster is too busy, use resource reservation. Put the -R y option into your qsub command. 29

34 Parallel Jobs 30

35 Parallel Environment Parallel Environment (PE) is a Grid Engine software package that enables parallel computing. By selecting a Parallel Environment, users can make use of various Message Passing Interface (MPI) libraries installed on the cluster. All these MPI libraries have already been tightly integrated with Grid Engine to provide a hassle free initialisation with reliable slave process control and correct accounting info. Which Parallel Environments are available? You can view the parallel environments currently available with the command $ qconf -spl The following valid PEs exist on Eddie at the time of writing: OpenMP infinipath memory memory-2g memory-6g mpich2 openib openib-smp openib-smp8 openib_smp8_qdr openib_smp8_sdr openmpi openmpi-smp openmpi-smp8 openmpi_fillup_mark1 openmpi_fillup_mark2 31

36 openmpi_smp8_mark1 openmpi_smp8_mark2 qlogic-mpi qlogic-mpi8 qlogic-mpi_smp8_qdr qlogic-mpi_smp8_sdr The -smp suffix (Shared Memory Programming) tells the scheduler to guarantee that every 4 slots are allocated on a single node to provide the "SMP Cluster" Shared Memory environment. These PEs only accept requests for slots in multiples of 4. The smp8 suffix acts similarly for 8 slots. The side effect is that your job will probably need to wait longer in the queue until there are sufficient empty nodes available. Using Parallel Environments A Parallel Environment is selected when submitting a job to Grid Engine using the -pe flag for the qsub command. Only one PE can be selected per job. You specify the name of the Parallel Environment and the number of slots to request: $ qsub -pe <pe_name> <slots> -l h_rt=h:m:s <job_script> for example qsub -pe openmp 8 l h_rt=16:00:00 hello.sh Tutorials For more information, worked examples and tutorials on using PEs, see the links under Running Parallel Jobs on the ECDF wiki page 32

37 Array Jobs Sometimes, you want to run a number of mostly identical jobs with the only difference being input parameters or data sets. Instead of submitting each as an independent job, you could submit an Array Job. Grid Engine provides this feature to help users to easily manage a job series with one command. Array jobs also place significantly lower load on the system than would otherwise be the case. You may have done the following operations before: $ qsub job.sh data.1 $ qsub job.sh data.2... $ qsub job.sh data.100 Writing a script to submit in a loop is one option. But you may also need to prepare the loop script to stop or cancel those jobs once you find something wrong after the jobs start running. Such a script can also place excessive load on the queueing system. Using an Array Job can help you to avoid these issues as you can submit, stop and delete jobs with just one command. Use the following command to submit an array job: $ qsub -t job.array.sh data Where the file job.array.sh looks like this: #!/bin/sh job.sh $1.$SGE_TASK_ID This will schedule 100 jobs, with each one being identical except for the data input being data.number, with number counting up from 1 to 100. $1 represents the string passed on the command line (in this case, "data"), and $SGE_TASK_ID represents the counter. 33

38 Troubleshooting 34

39 Logging on Permission denied, please try again. Wrong username or password. Make sure you are using your UUN and EASE password. X11 connection rejected This is most likely because the user is over quota on their home directory. This means the ~/.Xauthority file cannot be written to hence the authentication error. 35

40 Why does my job not start Why jobs fail to start Check resources asked for are sensible e.g. the following will not work: pe OpenMP 10 (maximum is 8) -l h_rt=49:00:00 (maximum is 48 hrs) Check with qstat that your intentions have been understood by Grid Engine: Time Parallel environment Number of slots 36

41 Limits User can submit running at one time Jobs asking for unavailable resources will not run e,g, more than 48 hours CPUs Run Time Number of CPUs in total Number of CPUs with Infiniband 30 min hr hr hr So submitting an 80-way job with 23 hours will never get started 37

42 More qstat options qstat s p Will only list waiting (pending) jobs Count with qstat s p wc -l 38

43 Why does my job stop unexpectedly? Check log qacct j jobnumber Out of time (Compare time used with time requested) Out of memory (Check memory used with maxvmem) Exit status (> 127 means out of memory) Ask for more information when submitting use m and M 39

44 Documentation Grid Engine: Using Grid Engine Downloadable from Eddie: Web site Wiki 40

45 Module 2: Introduction to Shell Scripts 41

46 Introduction This chapter assumes knowledge of the Unix command line structure. Its purpose is to show how commands are used to create shell scripts, and to introduce flow-control (loops) and conditional constructs. 42

47 Making shell scripts A shell script is a collection of Unix command lines assembled in a normal text file, usually given a name ending in the file extension.sh, and stored in the Unix filestore just like any other file. The commands are normal Unix command lines as you would type at a terminal foreground session. They will be run in order, as if they had been typed manually. A shell script must have execute permission turned on before it will run. The command to do this is: chmod +x script.sh (replacing script.sh with the name of your own script file). 43

48 Syntax rules Here is a simple (and trivial) shell script which simply returns the name of the host it is running on, and the current date and time: #!/bin/sh # #$ -o myoutput # hostname # # print date and time date We shall now examine what this means. The first thing to note is that most lines beginning with a hash (#) character are comments, and will be ignored when the script is executed. An exception to this rule is the special construction in the first line: #!/bin/sh This is an instruction to Unix to say which shell to use when interpreting the script. The /bin/sh refers to the location of the original Bourne shell, which is present in all Unix systems. Specifying the Bourne shell means the script can be passed to other Unix installations and will always be interpreted in the same way. Another exception is the line beginning #$. This line contains an option to the qsub command, exactly as if they had been specified in the qsub command line. You would need one such line for every option you wished to specify in this way. 44

49 Shell variables Variable names may comprise upper and lower case alphabetic characters, digits and underscores, and must start with a letter. Names and are case sensitive, so that for example FRED and fred would represent different variables. Some names are reserved for Unix use, such as the environment variables PATH, TERM etc. Variables do not have type, so there is no need for declaration. Shell variables are treated as being string variables, and are created by simply assigning them a value. For example Greeting="Hello World!" would create a variable called Greeting, and give it the value Hello World! Notice that when assigning values to variables, there should be no spaces around the equals sign. To print out the value of a variable (called dereferencing), precede it with a dollar sign: echo $Greeting Hello World Constants are variables whose initial value cannot be changed. These are created using the readonly command, used as follows: Author="Charles Dickens" readonly Author 45

50 Command line arguments When a Unix command is run, for example grep i smith wholist the shell will initiate the first item on the line, which it knows will be a command or script. It is then up to the command to interpret the rest of the line, and sort out options and arguments. Items in the list are referred to inside the command by the positional parameters $1 - $9. In the example, $1 would be i, $2 would be smith, and $3 would be wholist. There are some special variables to help handle this inside shell scripts: $# number of arguments on the command line $* and $@ contain all arguments as one string "$*" quoted string of all arguments "$@" string of individually quoted arguments "$@" is best. $$ current process ID of the shell Simple example Consider the following shell script, which will print out tony's name if he's logged on #!/bin/sh # Is tony logged on? who grep tony This will only ever search for tony. A much better script would be one where you could specify who you were looking for: 46

51 #!/bin/sh # Is the specified user logged on? who grep $1 If we called this script, say, showon, and gave it execute permission, we could search for any user we liked: showon tony showon bert Shift An obvious question is "How do we find the tenth argument?" The answer is that we use the shift command, which moves the parameters down one place, so that $2 becomes $1, $3 becomes $2, and so on. Notice that as a result of this we have lost the original $1, which would have to be assigned to another variable before the shift. 47

52 Practical exercise 1 Write a shell script, called args.sh, which can take an arbitrary number of arguments and print out how many there are. For example args.sh a b c d would print out There are 4 arguments. Ensure the script can run with at least 10 arguments, then adapt it to print out the ninth one. Adapt it again to print out the tenth argument. Finally, adapt it to print out the first and tenth arguments simultaneously, for example The first argument is x and the tenth is y. 48

53 Shell arithmetic The shell treats all shell variables as strings, so doing arithmetic requires a conversion command, expr, to treat variables as numbers. Note that expr only does integer (whole number) arithmetic. Real arithmetic (involving decimal fractions) is not possible with expr. It can be done in a round-about way using the shell calculator bc, which is beyond the scope of this course. There are five arithmetic operations as below. expr num + num expr num - num expr num \* num expr num / num expr num % num Addition Subtraction Multiplication Division Remainder Note that in some circumstances the multiplication operator, *, must be escaped, to prevent it being treated as a wild card. This is done in the usual way by preceding it with a backslash (\). As stated above, expr only does integer arithmetic. If presented with noninteger arguments, it will not do the calculation. The result of a calculation is usually assigned to a shell variable using command substitution (backquoting): Result=`expr $1 + $2` 49

54 Practical exercise 2 Write a script which takes two numeric arguments and prints out what percentage the first is of the second. For example, percent.sh % 50

55 Conditional statements Exit status Every Unix command returns a number to the system, to indicate whether it ran successfully, or failed. This is known as the command s exit status as follows: An exit status of zero, means the command was successful An exit status which is non-zero means the command failed The exit status of the last command is held in the special shell variable $?. It can be examined with the command echo $? You can force a particular exit status (n) from within a shell script using one of the commands exit n return n The if statement Conditions can be tested for being true or false, for example, does a certain file exist, or does a certain variable have a certain value? A command, or list of commands, can then be execuited depending on the result of the test. This is done using the if-then-fi construct: if conditional-expression then list of commands fi The if command introduces the conditional-expression, which will be evaluated (more on this later) to be either true or false, and the list of commands following then, will be executed only if the condition is true. If the condition is false, then nothing will happen, and the next command in sequence will be executed as normal. The fi marks the end of the sequence of commands, and terminates the if command. 51

56 if-then-else-fi Adding an else clause to the above, enables a second list of commands to be executed only when the condition is false: if conditional-expression then first list of commands else second list of commands fi In this case, the first list of commands will be executed only if the condition is true, as before, but the second list will only be executed if the condition is false. Example #!/bin/sh #Is the specified user logged in if who grep $1 > /dev/null then echo $1 is logged in return 0 else echo $1 is not logged in return 1 fi If the user is logged in, grep will succeed and return an exit status 0 (true) so the then part will be run. If the user is not logged in, grep will return 1 (false) so the else part will run. The script itself will return either 0 or 1 as appropriate, using exit commands. elif 52

57 To make things even more complex, the else part could also be a conditional in its own right. To avoid saying else if, there is a special word elif,used as follows: if condition 1 then command list 1 elif condition 2 then command list 2 else command list 3 fi If you choose not to use elif, you would need nested if statements, and each would require its own fi: if condition 1 then command list 1 else if condition 2 then command list 2 else command list 3 fi fi 53

58 test The test command evaluates conditions and returns zero if the condition is true and non-zero if it is false. For example, the command test f filename will test to see if the file filename exists and is a regular file. It will return zero if it does, and non-zero if it doesn't. Other options work in the same way. File attributes test d file file exists and is a directory test r file file exists and is readable test w file file exists and is writeable test x file file exists and is executable/searchable test s file file exists and has a size greater than zero. Strings test str str is not null test str1=str2 str1 equals str2 test str1!=str2 str1 does not equal str2 Numeric test num1 eq num2 num1 and num2 are equal n1 ne n2 not equal to n1 gt n2 greater than n1 ge n2 greater than or equal to n1 lt n2 less than ne le n2 less than or equal to 54

59 Practical Exercise 3 Write a shell script, called filetype which takes a single argument and does the following: determine if the argument is a file or a directory, or something else. If it is a file, print out whether it is readable, writeable or executable. If it is a directory, print out whether it is readable, writeable or searchable. Exit the script with a status of 0. If it is something else, print out a suitable message then exit with status of 1. When your script terminates, check that the exit status is what you expect. 55

60 Looping Looping allows us to repeat any part or parts of a script a given number of times, usually with different values for some variables at each cycle. The number of repeats can be predetermined, or can be set to continue while (or until) a given condition occurs. When the loop has finished, the script continues with the next command. There are three main types: For loops While loops Until loops We shall look at each in turn. 56

61 For loops These are the simplest loops, which repeat a given number of times. this is best illustrated with an example. The general syntax is: for variable in word-list do command-list done Each value in word-list will be substituted in turn for the variable, and the command-list will be executed once for each new substitution. The variable may appear in the command-list (usually as an argument of one of the commands), or it may simply be used as a counter to control the number of repetitions. Example #!/bin/sh #Counts up to three, one count per second for i in one two three do echo $i sleep 1 done To start, i has the value one, its value is echoed to sdtout, and then waits one second. i then takes the value two, and the process is repeated until the word-list is exhausted. The word-list may be of an unknown length, for example for file in a* will create a word list of all files beginning with a. 57

62 While loops These loops contain a conditional test, and the looping will continue while the condition remains true. The syntax is: while condition do done command-list The command-list is repeated as long as the condition is true. Obviously there must be something in the command-list which can change the condition to false, otherwise it will loop forever. Example #!/bin/sh #Blast off countdown from 10 i=10 while test $i ge 0 do echo $i i=`expr $i 1` sleep 1 done echo "... we have lift off!" exit 0 The variable i is initially set to 10. Each time round the loop, it is printed out and then decreased by 1. This will continue as long as it is greater or equal to 0. As soon as i goes negative, the condition will be false and looping will terminate. 58

63 Until loops These are the opposite of while-loops, and the command-list will be executed as long as the condition is false. Looping will cease if the condition becomes true. Syntax until condition do command-list done 59

64 Practical Exercise 4 Write a shell script to test whether a file exists, and to list it out (using cat) if it does. Output a suitable message if the file does not exist. Create a shell script using the script in the while loop example above, and run this job to make sure it works. Can you adapt the script to work using until instead of while? 60

65 Read The read command takes a line of input from the standard input channel (usually the keyboard, but can be reassigned with the < sign) and assigns the words on the input line to the variables given as arguments. Example read a b c will read a line of input, and assign the first word to a, the second to b, and the third to c. If there are more than 3 words, then c will contain all words from the third to the end. If there are less than 3 words, then any "unused" variables will be undefined, even if they had a value before. read returns an exit code of 0 if it managed to read a line. If it failed, such as by reaching the end of the file, then it returns a non-zero code. It is often used with the while loop, such as while read f which will cause the loop to continue reading input (and presumably doing something with it) until the input ends, read returns a non-zero code, and the loop terminates. 61

66 Case The case command is an extension of the if command, offering multi-way branching. It compares a given string (possibly read in from the terminal) against a set of patterns, each of which has a corresponding set of commands, which will be executed if the string matches the pattern. The format is: case string in pattern1) command-list1 ;; pattern2) command-list2 ;; etc. esac Note that each command-list is terminated with two semi-colons, and that the whole case construct is terminated with esac (case backwards). Only one pattern can be matched at a time, and as soon as its command list is finished, the whole case command terminates. Patterns The standard shell pattern-matching facilities (*,? and []) can be used in the patterns, as well as the vertical bar to indicate options, for example tom jerry) will match either word. Note that * will match any pattern, so can be used as the last pattern, to match anything not caught by previous patterns. 62

67 Example #!/bin/sh # what-we-got - determine character type of first arg case "$1" in [0-9]*) echo "$1 starts with a number" ;; [a-z]* [A-Z]*) echo "$1 starts with an alphabetic" ;; esac *) echo "$1 starts with a non numeric or alphabetic character" ;; 63

68 Practical Exercise 5 Consider the following list of different words for "hello": hello (English) bonjour (French) hola (Spanish) ciao (Italian) "guten tag" (German) Write a script which will read a foreign word from the terminal, and use a case statement to return the appropriate nationality. Don't forget to include a wildcard pattern at the end to catch any unknown words. 64

69 Answers to practicals Practical 1 #!/bin/sh # Use $# to get the number of arguments # echo There are $# arguments. # #!/bin/sh # Use $9 to get the ninth argument # echo The ninth argument is $9. # #!/bin/sh # Use shift and $9 to get the tenth argument # shift echo The tenth argument is $9. # #!/bin/sh # Save $1 in another variable, then shift to get the tenth argument # temp=$1 shift echo The first argument is $temp and the tenth is $9. # 65

70 Practical 2 #!/bin/sh result=`expr $1 \* 100 / $2` echo $result It is important to space out the operators and operands as shown. If your normal way of doing this is to divide the two numbers and then multiply by 100 to get a percentage, it will not work in this case. The division is likely to produce a fraction less than 1, and since expr only works in integer mode, this will be represented as zero. Since the expression is evaluated first due to its back-quoting, it could be given as a direct argument to echo, without the intervening result variable. 66

71 Practical 3 #!/bin/sh # # Check if it is a file # if test -f $1 then echo $1 is a file if test -r $1 then echo It is readable fi if test -w $1 then echo It is writeable fi if test -x $1 then echo It is executable fi return 0 fi # # Check if it is a directory # if test -d $1 then echo $1 is a directory if test -r $1 then echo It is readable 67

72 return 0 fi # fi if test -w $1 then echo It is writeable fi if test -x $1 then echo It is searchable fi echo $1 is something other than a file or directory, or does not exist. return 1 68

73 Practical 4 #!/bin/sh # if test -f $1 then cat $1 else echo The requested file does not exist. fi #!/bin/sh #Blast off countdown from 10 i=10 until test $i lt 0 do echo $i i=`expr $i 1` sleep 1 done echo "... we have lift off!" exit 0 69

74 Practical 5 #!/bin/sh # Words for hello case "$1" in esac hello) echo English ;; bonjour) echo French ;; hola) echo Spanish ;; ciao) echo Italian ;; "guten tag") echo German ;; *) echo Word not in database. ;; 70

75 Documentation Shell Scripts: The Information Services Training Section runs a course on Shell Programming. For further details, contact the Computing Skills Centre on or eucs.training@ed.ac.uk, quoting course code The workbook is available on-line at 71

Grid Engine Basics. Table of Contents. Grid Engine Basics Version 1. (Formerly: Sun Grid Engine)

Grid Engine Basics. Table of Contents. Grid Engine Basics Version 1. (Formerly: Sun Grid Engine) Grid Engine Basics (Formerly: Sun Grid Engine) Table of Contents Table of Contents Document Text Style Associations Prerequisites Terminology What is the Grid Engine (SGE)? Loading the SGE Module on Turing

More information

Introduction to Sun Grid Engine (SGE)

Introduction to Sun Grid Engine (SGE) Introduction to Sun Grid Engine (SGE) What is SGE? Sun Grid Engine (SGE) is an open source community effort to facilitate the adoption of distributed computing solutions. Sponsored by Sun Microsystems

More information

Unix Scripts and Job Scheduling

Unix Scripts and Job Scheduling Unix Scripts and Job Scheduling Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Overview Shell Scripts

More information

Shell Scripts (1) For example: #!/bin/sh If they do not, the user's current shell will be used. Any Unix command can go in a shell script

Shell Scripts (1) For example: #!/bin/sh If they do not, the user's current shell will be used. Any Unix command can go in a shell script Shell Programming Shell Scripts (1) Basically, a shell script is a text file with Unix commands in it. Shell scripts usually begin with a #! and a shell name For example: #!/bin/sh If they do not, the

More information

Grid 101. Grid 101. Josh Hegie. grid@unr.edu http://hpc.unr.edu

Grid 101. Grid 101. Josh Hegie. grid@unr.edu http://hpc.unr.edu Grid 101 Josh Hegie grid@unr.edu http://hpc.unr.edu Accessing the Grid Outline 1 Accessing the Grid 2 Working on the Grid 3 Submitting Jobs with SGE 4 Compiling 5 MPI 6 Questions? Accessing the Grid Logging

More information

SGE Roll: Users Guide. Version @VERSION@ Edition

SGE Roll: Users Guide. Version @VERSION@ Edition SGE Roll: Users Guide Version @VERSION@ Edition SGE Roll: Users Guide : Version @VERSION@ Edition Published Aug 2006 Copyright 2006 UC Regents, Scalable Systems Table of Contents Preface...i 1. Requirements...1

More information

Introduction to the SGE/OGS batch-queuing system

Introduction to the SGE/OGS batch-queuing system Grid Computing Competence Center Introduction to the SGE/OGS batch-queuing system Riccardo Murri Grid Computing Competence Center, Organisch-Chemisches Institut, University of Zurich Oct. 6, 2011 The basic

More information

GRID Computing: CAS Style

GRID Computing: CAS Style CS4CC3 Advanced Operating Systems Architectures Laboratory 7 GRID Computing: CAS Style campus trunk C.I.S. router "birkhoff" server The CAS Grid Computer 100BT ethernet node 1 "gigabyte" Ethernet switch

More information

Bash shell programming Part II Control statements

Bash shell programming Part II Control statements Bash shell programming Part II Control statements Deniz Savas and Michael Griffiths 2005-2011 Corporate Information and Computing Services The University of Sheffield Email M.Griffiths@sheffield.ac.uk

More information

Quick Tutorial for Portable Batch System (PBS)

Quick Tutorial for Portable Batch System (PBS) Quick Tutorial for Portable Batch System (PBS) The Portable Batch System (PBS) system is designed to manage the distribution of batch jobs and interactive sessions across the available nodes in the cluster.

More information

CS2720 Practical Software Development

CS2720 Practical Software Development Page 1 Rex Forsyth CS2720 Practical Software Development CS2720 Practical Software Development Scripting Tutorial Srping 2011 Instructor: Rex Forsyth Office: C-558 E-mail: forsyth@cs.uleth.ca Tel: 329-2496

More information

Hands-On UNIX Exercise:

Hands-On UNIX Exercise: Hands-On UNIX Exercise: This exercise takes you around some of the features of the shell. Even if you don't need to use them all straight away, it's very useful to be aware of them and to know how to deal

More information

Grid Engine 6. Troubleshooting. BioTeam Inc. info@bioteam.net

Grid Engine 6. Troubleshooting. BioTeam Inc. info@bioteam.net Grid Engine 6 Troubleshooting BioTeam Inc. info@bioteam.net Grid Engine Troubleshooting There are two core problem types Job Level Cluster seems OK, example scripts work fine Some user jobs/apps fail Cluster

More information

Grid Engine Users Guide. 2011.11p1 Edition

Grid Engine Users Guide. 2011.11p1 Edition Grid Engine Users Guide 2011.11p1 Edition Grid Engine Users Guide : 2011.11p1 Edition Published Nov 01 2012 Copyright 2012 University of California and Scalable Systems This document is subject to the

More information

Streamline Computing Linux Cluster User Training. ( Nottingham University)

Streamline Computing Linux Cluster User Training. ( Nottingham University) 1 Streamline Computing Linux Cluster User Training ( Nottingham University) 3 User Training Agenda System Overview System Access Description of Cluster Environment Code Development Job Schedulers Running

More information

PBS Tutorial. Fangrui Ma Universit of Nebraska-Lincoln. October 26th, 2007

PBS Tutorial. Fangrui Ma Universit of Nebraska-Lincoln. October 26th, 2007 PBS Tutorial Fangrui Ma Universit of Nebraska-Lincoln October 26th, 2007 Abstract In this tutorial we gave a brief introduction to using PBS Pro. We gave examples on how to write control script, and submit

More information

Maxwell compute cluster

Maxwell compute cluster Maxwell compute cluster An introduction to the Maxwell compute cluster Part 1 1.1 Opening PuTTY and getting the course materials on to Maxwell 1.1.1 On the desktop, double click on the shortcut icon for

More information

High Performance Computing Facility Specifications, Policies and Usage. Supercomputer Project. Bibliotheca Alexandrina

High Performance Computing Facility Specifications, Policies and Usage. Supercomputer Project. Bibliotheca Alexandrina High Performance Computing Facility Specifications, Policies and Usage Supercomputer Project Bibliotheca Alexandrina Bibliotheca Alexandrina 1/16 Topics Specifications Overview Site Policies Intel Compilers

More information

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2 Unix Shell Scripts Norman Matloff July 30, 2008 Contents 1 Introduction 1 2 Invoking Shell Scripts 2 2.1 Direct Interpretation....................................... 2 2.2 Indirect Interpretation......................................

More information

Introduction to Shell Programming

Introduction to Shell Programming Introduction to Shell Programming what is shell programming? about cygwin review of basic UNIX TM pipelines of commands about shell scripts some new commands variables parameters and shift command substitution

More information

Introduction to Running Hadoop on the High Performance Clusters at the Center for Computational Research

Introduction to Running Hadoop on the High Performance Clusters at the Center for Computational Research Introduction to Running Hadoop on the High Performance Clusters at the Center for Computational Research Cynthia Cornelius Center for Computational Research University at Buffalo, SUNY 701 Ellicott St

More information

User s Guide. Introduction

User s Guide. Introduction CHAPTER 3 User s Guide Introduction Sun Grid Engine (Computing in Distributed Networked Environments) is a load management tool for heterogeneous, distributed computing environments. Sun Grid Engine provides

More information

Hodor and Bran - Job Scheduling and PBS Scripts

Hodor and Bran - Job Scheduling and PBS Scripts Hodor and Bran - Job Scheduling and PBS Scripts UND Computational Research Center Now that you have your program compiled and your input file ready for processing, it s time to run your job on the cluster.

More information

Efficient cluster computing

Efficient cluster computing Efficient cluster computing Introduction to the Sun Grid Engine (SGE) queuing system Markus Rampp (RZG, MIGenAS) MPI for Evolutionary Anthropology Leipzig, Feb. 16, 2007 Outline Introduction Basic concepts:

More information

Introduction to Sun Grid Engine 5.3

Introduction to Sun Grid Engine 5.3 CHAPTER 1 Introduction to Sun Grid Engine 5.3 This chapter provides background information about the Sun Grid Engine 5.3 system that is useful to users and administrators alike. In addition to a description

More information

Miami University RedHawk Cluster Working with batch jobs on the Cluster

Miami University RedHawk Cluster Working with batch jobs on the Cluster Miami University RedHawk Cluster Working with batch jobs on the Cluster The RedHawk cluster is a general purpose research computing resource available to support the research community at Miami University.

More information

Martinos Center Compute Clusters

Martinos Center Compute Clusters Intro What are the compute clusters How to gain access Housekeeping Usage Log In Submitting Jobs Queues Request CPUs/vmem Email Status I/O Interactive Dependencies Daisy Chain Wrapper Script In Progress

More information

Lecture 4: Writing shell scripts

Lecture 4: Writing shell scripts Handout 5 06/03/03 1 Your rst shell script Lecture 4: Writing shell scripts Shell scripts are nothing other than les that contain shell commands that are run when you type the le at the command line. That

More information

Cluster@WU User s Manual

Cluster@WU User s Manual Cluster@WU User s Manual Stefan Theußl Martin Pacala September 29, 2014 1 Introduction and scope At the WU Wirtschaftsuniversität Wien the Research Institute for Computational Methods (Forschungsinstitut

More information

An Introduction to High Performance Computing in the Department

An Introduction to High Performance Computing in the Department An Introduction to High Performance Computing in the Department Ashley Ford & Chris Jewell Department of Statistics University of Warwick October 30, 2012 1 Some Background 2 How is Buster used? 3 Software

More information

The SUN ONE Grid Engine BATCH SYSTEM

The SUN ONE Grid Engine BATCH SYSTEM The SUN ONE Grid Engine BATCH SYSTEM Juan Luis Chaves Sanabria Centro Nacional de Cálculo Científico (CeCalCULA) Latin American School in HPC on Linux Cluster October 27 November 07 2003 What is SGE? Is

More information

Cluster Computing With R

Cluster Computing With R Cluster Computing With R Stowers Institute for Medical Research R/Bioconductor Discussion Group Earl F. Glynn Scientific Programmer 18 December 2007 1 Cluster Computing With R Accessing Linux Boxes from

More information

Introduction to Python

Introduction to Python WEEK ONE Introduction to Python Python is such a simple language to learn that we can throw away the manual and start with an example. Traditionally, the first program to write in any programming language

More information

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share. LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.

More information

CS2043 - Unix Tools & Scripting Lecture 9 Shell Scripting

CS2043 - Unix Tools & Scripting Lecture 9 Shell Scripting CS2043 - Unix Tools & Scripting Lecture 9 Shell Scripting Spring 2015 1 February 9, 2015 1 based on slides by Hussam Abu-Libdeh, Bruno Abrahao and David Slater over the years Announcements Coursework adjustments

More information

NYUAD HPC Center Running Jobs

NYUAD HPC Center Running Jobs NYUAD HPC Center Running Jobs 1 Overview... Error! Bookmark not defined. 1.1 General List... Error! Bookmark not defined. 1.2 Compilers... Error! Bookmark not defined. 2 Loading Software... Error! Bookmark

More information

Beyond Windows: Using the Linux Servers and the Grid

Beyond Windows: Using the Linux Servers and the Grid Beyond Windows: Using the Linux Servers and the Grid Topics Linux Overview How to Login & Remote Access Passwords Staying Up-To-Date Network Drives Server List The Grid Useful Commands Linux Overview Linux

More information

Retrieving Data Using the SQL SELECT Statement. Copyright 2006, Oracle. All rights reserved.

Retrieving Data Using the SQL SELECT Statement. Copyright 2006, Oracle. All rights reserved. Retrieving Data Using the SQL SELECT Statement Objectives After completing this lesson, you should be able to do the following: List the capabilities of SQL SELECT statements Execute a basic SELECT statement

More information

Running on Blue Gene/Q at Argonne Leadership Computing Facility (ALCF)

Running on Blue Gene/Q at Argonne Leadership Computing Facility (ALCF) Running on Blue Gene/Q at Argonne Leadership Computing Facility (ALCF) ALCF Resources: Machines & Storage Mira (Production) IBM Blue Gene/Q 49,152 nodes / 786,432 cores 768 TB of memory Peak flop rate:

More information

Linux für bwgrid. Sabine Richling, Heinz Kredel. Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim. 27.

Linux für bwgrid. Sabine Richling, Heinz Kredel. Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim. 27. Linux für bwgrid Sabine Richling, Heinz Kredel Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim 27. June 2011 Richling/Kredel (URZ/RUM) Linux für bwgrid FS 2011 1 / 33 Introduction

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

Introduction to Shell Scripting

Introduction to Shell Scripting Introduction to Shell Scripting Lecture 1. Shell scripts are small programs. They let you automate multi-step processes, and give you the capability to use decision-making logic and repetitive loops. 2.

More information

Grid Engine 6. Policies. BioTeam Inc. info@bioteam.net

Grid Engine 6. Policies. BioTeam Inc. info@bioteam.net Grid Engine 6 Policies BioTeam Inc. info@bioteam.net This module covers High level policy config Reservations Backfilling Resource Quotas Advanced Reservation Job Submission Verification We ll be talking

More information

CLC Server Command Line Tools USER MANUAL

CLC Server Command Line Tools USER MANUAL CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej

More information

Advanced Bash Scripting. Joshua Malone (jmalone@ubergeeks.com)

Advanced Bash Scripting. Joshua Malone (jmalone@ubergeeks.com) Advanced Bash Scripting Joshua Malone (jmalone@ubergeeks.com) Why script in bash? You re probably already using it Great at managing external programs Powerful scripting language Portable and version-stable

More information

Databases in Microsoft Access David M. Marcovitz, Ph.D.

Databases in Microsoft Access David M. Marcovitz, Ph.D. Databases in Microsoft Access David M. Marcovitz, Ph.D. Introduction Schools have been using integrated programs, such as Microsoft Works and Claris/AppleWorks, for many years to fulfill word processing,

More information

Notes on the SNOW/Rmpi R packages with OpenMPI and Sun Grid Engine

Notes on the SNOW/Rmpi R packages with OpenMPI and Sun Grid Engine Notes on the SNOW/Rmpi R packages with OpenMPI and Sun Grid Engine Last updated: 6/2/2008 4:43PM EDT We informally discuss the basic set up of the R Rmpi and SNOW packages with OpenMPI and the Sun Grid

More information

Job Scheduling with Moab Cluster Suite

Job Scheduling with Moab Cluster Suite Job Scheduling with Moab Cluster Suite IBM High Performance Computing February 2010 Y. Joanna Wong, Ph.D. yjw@us.ibm.com 2/22/2010 Workload Manager Torque Source: Adaptive Computing 2 Some terminology..

More information

Exercise 1: Python Language Basics

Exercise 1: Python Language Basics Exercise 1: Python Language Basics In this exercise we will cover the basic principles of the Python language. All languages have a standard set of functionality including the ability to comment code,

More information

Command Line - Part 1

Command Line - Part 1 Command Line - Part 1 STAT 133 Gaston Sanchez Department of Statistics, UC Berkeley gastonsanchez.com github.com/gastonstat Course web: gastonsanchez.com/teaching/stat133 GUIs 2 Graphical User Interfaces

More information

Access Queries (Office 2003)

Access Queries (Office 2003) Access Queries (Office 2003) Technical Support Services Office of Information Technology, West Virginia University OIT Help Desk 293-4444 x 1 oit.wvu.edu/support/training/classmat/db/ Instructor: Kathy

More information

Batch Job Analysis to Improve the Success Rate in HPC

Batch Job Analysis to Improve the Success Rate in HPC Batch Job Analysis to Improve the Success Rate in HPC 1 JunWeon Yoon, 2 TaeYoung Hong, 3 ChanYeol Park, 4 HeonChang Yu 1, First Author KISTI and Korea University, jwyoon@kisti.re.kr 2,3, KISTI,tyhong@kisti.re.kr,chan@kisti.re.kr

More information

EMC Documentum Webtop

EMC Documentum Webtop EMC Documentum Webtop Version 6.5 User Guide P/N 300 007 239 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 1994 2008 EMC Corporation. All rights

More information

Introduction to Python

Introduction to Python Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment

More information

Exercise 4 Learning Python language fundamentals

Exercise 4 Learning Python language fundamentals Exercise 4 Learning Python language fundamentals Work with numbers Python can be used as a powerful calculator. Practicing math calculations in Python will help you not only perform these tasks, but also

More information

Thirty Useful Unix Commands

Thirty Useful Unix Commands Leaflet U5 Thirty Useful Unix Commands Last revised April 1997 This leaflet contains basic information on thirty of the most frequently used Unix Commands. It is intended for Unix beginners who need a

More information

The RWTH Compute Cluster Environment

The RWTH Compute Cluster Environment The RWTH Compute Cluster Environment Tim Cramer 11.03.2013 Source: D. Both, Bull GmbH Rechen- und Kommunikationszentrum (RZ) How to login Frontends cluster.rz.rwth-aachen.de cluster-x.rz.rwth-aachen.de

More information

Scheduling in SAS 9.4 Second Edition

Scheduling in SAS 9.4 Second Edition Scheduling in SAS 9.4 Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2015. Scheduling in SAS 9.4, Second Edition. Cary, NC: SAS Institute

More information

grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print

grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print In the simplest terms, grep (global regular expression print) will search input

More information

Scheduling in SAS 9.3

Scheduling in SAS 9.3 Scheduling in SAS 9.3 SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc 2011. Scheduling in SAS 9.3. Cary, NC: SAS Institute Inc. Scheduling in SAS 9.3

More information

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery PHP Debugging Draft: March 19, 2013 2013 Christopher Vickery Introduction Debugging is the art of locating errors in your code. There are three types of errors to deal with: 1. Syntax errors: When code

More information

SLURM Workload Manager

SLURM Workload Manager SLURM Workload Manager What is SLURM? SLURM (Simple Linux Utility for Resource Management) is the native scheduler software that runs on ASTI's HPC cluster. Free and open-source job scheduler for the Linux

More information

High-Performance Reservoir Risk Assessment (Jacta Cluster)

High-Performance Reservoir Risk Assessment (Jacta Cluster) High-Performance Reservoir Risk Assessment (Jacta Cluster) SKUA-GOCAD 2013.1 Paradigm 2011.3 With Epos 4.1 Data Management Configuration Guide 2008 2013 Paradigm Ltd. or its affiliates and subsidiaries.

More information

Using Parallel Computing to Run Multiple Jobs

Using Parallel Computing to Run Multiple Jobs Beowulf Training Using Parallel Computing to Run Multiple Jobs Jeff Linderoth August 5, 2003 August 5, 2003 Beowulf Training Running Multiple Jobs Slide 1 Outline Introduction to Scheduling Software The

More information

WS_FTP Professional 12

WS_FTP Professional 12 WS_FTP Professional 12 Tools Guide Contents CHAPTER 1 Introduction Ways to Automate Regular File Transfers...5 Check Transfer Status and Logs...6 Building a List of Files for Transfer...6 Transfer Files

More information

AN INTRODUCTION TO UNIX

AN INTRODUCTION TO UNIX AN INTRODUCTION TO UNIX Paul Johnson School of Mathematics September 24, 2010 OUTLINE 1 SHELL SCRIPTS Shells 2 COMMAND LINE Command Line Input/Output 3 JOBS Processes Job Control 4 NETWORKING Working From

More information

Microsoft Access 3: Understanding and Creating Queries

Microsoft Access 3: Understanding and Creating Queries Microsoft Access 3: Understanding and Creating Queries In Access Level 2, we learned how to perform basic data retrievals by using Search & Replace functions and Sort & Filter functions. For more complex

More information

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Cynthia Cornelius Center for Computational Research University at Buffalo, SUNY 701 Ellicott St Buffalo, NY 14203 Phone: 716-881-8959

More information

2 SQL in iseries Navigator

2 SQL in iseries Navigator 2 SQL in iseries Navigator In V4R4, IBM added an SQL scripting tool to the standard features included within iseries Navigator and has continued enhancing it in subsequent releases. Because standard features

More information

How to Run Parallel Jobs Efficiently

How to Run Parallel Jobs Efficiently How to Run Parallel Jobs Efficiently Shao-Ching Huang High Performance Computing Group UCLA Institute for Digital Research and Education May 9, 2013 1 The big picture: running parallel jobs on Hoffman2

More information

Setting up the Oracle Warehouse Builder Project. Topics. Overview. Purpose

Setting up the Oracle Warehouse Builder Project. Topics. Overview. Purpose Setting up the Oracle Warehouse Builder Project Purpose In this tutorial, you setup and configure the project environment for Oracle Warehouse Builder 10g Release 2. You create a Warehouse Builder repository

More information

1.0. User Manual For HPC Cluster at GIKI. Volume. Ghulam Ishaq Khan Institute of Engineering Sciences & Technology

1.0. User Manual For HPC Cluster at GIKI. Volume. Ghulam Ishaq Khan Institute of Engineering Sciences & Technology Volume 1.0 FACULTY OF CUMPUTER SCIENCE & ENGINEERING Ghulam Ishaq Khan Institute of Engineering Sciences & Technology User Manual For HPC Cluster at GIKI Designed and prepared by Faculty of Computer Science

More information

Data Warehouse Troubleshooting Tips

Data Warehouse Troubleshooting Tips Table of Contents "Can't find the Admin layer "... 1 "Can't locate connection document "... 3 Column Headings are Missing after Copy/Paste... 5 Connection Error: ORA-01017: invalid username/password; logon

More information

Installing and running COMSOL on a Linux cluster

Installing and running COMSOL on a Linux cluster Installing and running COMSOL on a Linux cluster Introduction This quick guide explains how to install and operate COMSOL Multiphysics 5.0 on a Linux cluster. It is a complement to the COMSOL Installation

More information

HP-UX Essentials and Shell Programming Course Summary

HP-UX Essentials and Shell Programming Course Summary Contact Us: (616) 875-4060 HP-UX Essentials and Shell Programming Course Summary Length: 5 Days Prerequisite: Basic computer skills Recommendation Statement: Student should be able to use a computer monitor,

More information

How To Use Excel With A Calculator

How To Use Excel With A Calculator Functions & Data Analysis Tools Academic Computing Services www.ku.edu/acs Abstract: This workshop focuses on the functions and data analysis tools of Microsoft Excel. Topics included are the function

More information

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved.

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved. 1 2 Introduction to Java Applications 2.2 First Program in Java: Printing a Line of Text 2 Application Executes when you use the java command to launch the Java Virtual Machine (JVM) Sample program Displays

More information

HOD Scheduler. Table of contents

HOD Scheduler. Table of contents Table of contents 1 Introduction... 2 2 HOD Users... 2 2.1 Getting Started... 2 2.2 HOD Features...5 2.3 Troubleshooting... 14 3 HOD Administrators... 21 3.1 Getting Started... 22 3.2 Prerequisites...

More information

Configuration Manager

Configuration Manager After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration

More information

Bitrix Site Manager ASP.NET. Installation Guide

Bitrix Site Manager ASP.NET. Installation Guide Bitrix Site Manager ASP.NET Installation Guide Contents Introduction... 4 Chapter 1. Checking for IIS Installation... 5 Chapter 2. Using An Archive File to Install Bitrix Site Manager ASP.NET... 7 Preliminary

More information

Enigma, Sun Grid Engine (SGE), and the Joint High Performance Computing Exchange (JHPCE) Cluster

Enigma, Sun Grid Engine (SGE), and the Joint High Performance Computing Exchange (JHPCE) Cluster Enigma, Sun Grid Engine (SGE), and the Joint High Performance Computing Exchange (JHPCE) Cluster http://www.biostat.jhsph.edu/bit/sge_lecture.ppt.pdf Marvin Newhouse Fernando J. Pineda The JHPCE staff:

More information

DiskPulse DISK CHANGE MONITOR

DiskPulse DISK CHANGE MONITOR DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product

More information

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated

More information

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the Sage MAS Intelligence Reports... 3 Copying, Pasting and Renaming Reports... 4 To create a new report from an existing report...

More information

Emails sent to the FaxFinder fax server must meet the following criteria to be processed for sending as a fax:

Emails sent to the FaxFinder fax server must meet the following criteria to be processed for sending as a fax: FaxFinder FFx30 T.37 Store & Forward Fax (T.37) Introduction The FaxFinder implements T.37 Store and Forward Fax (RFC2304) to convert emails into facsimile transmissions. The FaxFinder fax server accepts

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab Social Science Research Lab American University, Washington, D.C. Web. www.american.edu/provost/ctrl/pclabs.cfm Tel. x3862 Email. SSRL@American.edu Course Objective This course provides

More information

Fundamentals of UNIX Lab 16.2.6 Networking Commands (Estimated time: 45 min.)

Fundamentals of UNIX Lab 16.2.6 Networking Commands (Estimated time: 45 min.) Fundamentals of UNIX Lab 16.2.6 Networking Commands (Estimated time: 45 min.) Objectives: Develop an understanding of UNIX and TCP/IP networking commands Ping another TCP/IP host Use traceroute to check

More information

Server Management Tools (ASMT)

Server Management Tools (ASMT) 1 Auspex Server Management Tools (ASMT) Introduction This module presents the Auspex Server Management Tools, or ASMT. This is a graphical interface which allows you to perform most NetServer system administration

More information

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002)

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002) Cisco Networking Academy Program Curriculum Scope & Sequence Fundamentals of UNIX version 2.0 (July, 2002) Course Description: Fundamentals of UNIX teaches you how to use the UNIX operating system and

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

Setting Up the Site Licenses

Setting Up the Site Licenses XC LICENSE SERVER Setting Up the Site Licenses INTRODUCTION To complete the installation of an XC Site License, create an options file that includes the Host Name (computer s name) of each client machine.

More information

User Guide for TASKE Desktop

User Guide for TASKE Desktop User Guide for TASKE Desktop For Avaya Aura Communication Manager with Aura Application Enablement Services Version: 8.9 Date: 2013-03 This document is provided to you for informational purposes only.

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information

Getting Started. Getting Started with Time Warner Cable Business Class. Voice Manager. A Guide for Administrators and Users

Getting Started. Getting Started with Time Warner Cable Business Class. Voice Manager. A Guide for Administrators and Users Getting Started Getting Started with Time Warner Cable Business Class Voice Manager A Guide for Administrators and Users Table of Contents Table of Contents... 2 How to Use This Guide... 3 Administrators...

More information

Tutorial Guide to the IS Unix Service

Tutorial Guide to the IS Unix Service Tutorial Guide to the IS Unix Service The aim of this guide is to help people to start using the facilities available on the Unix and Linux servers managed by Information Services. It refers in particular

More information

TECHNICAL REFERENCE GUIDE

TECHNICAL REFERENCE GUIDE TECHNICAL REFERENCE GUIDE SOURCE TARGET Kerio Microsoft Exchange/Outlook (PST) (versions 2010, 2007) Copyright 2014 by Transend Corporation EXECUTIVE SUMMARY This White Paper provides detailed information

More information

Microsoft Excel Tips & Tricks

Microsoft Excel Tips & Tricks Microsoft Excel Tips & Tricks Collaborative Programs Research & Evaluation TABLE OF CONTENTS Introduction page 2 Useful Functions page 2 Getting Started with Formulas page 2 Nested Formulas page 3 Copying

More information

Submitting Jobs to the Sun Grid Engine. CiCS Dept The University of Sheffield. Email D.Savas@sheffield.ac.uk M.Griffiths@sheffield.ac.

Submitting Jobs to the Sun Grid Engine. CiCS Dept The University of Sheffield. Email D.Savas@sheffield.ac.uk M.Griffiths@sheffield.ac. Submitting Jobs to the Sun Grid Engine CiCS Dept The University of Sheffield Email D.Savas@sheffield.ac.uk M.Griffiths@sheffield.ac.uk October 2012 Topics Covered Introducing the grid and batch concepts.

More information

Hermes.Net IVR Designer Page 2 36

Hermes.Net IVR Designer Page 2 36 Hermes.Net IVR Designer Page 2 36 Summary 1. Introduction 4 1.1 IVR Features 4 2. The interface 5 2.1 Description of the Interface 6 2.1.1 Menus. Provides 6 2.1.2 Commands for IVR editions. 6 2.1.3 Commands

More information

PUBLIC Model Manager User Guide

PUBLIC Model Manager User Guide SAP Predictive Analytics 2.4 2015-11-23 PUBLIC Content 1 Introduction....4 2 Concepts....5 2.1 Roles....5 2.2 Rights....6 2.3 Schedules....7 2.4 Tasks.... 7 3....8 3.1 My Model Manager....8 Overview....

More information