55
Cluster Computing at IQSS Alex Storer, Research Technology Consultant

Cluster Computing at IQSS

  • Upload
    zinnia

  • View
    43

  • Download
    1

Embed Size (px)

DESCRIPTION

Cluster Computing at IQSS. Alex Storer, Research Technology Consultant. What is the RCE?. R esearch C omputing E nvironment For research in the social sciences Get an account! [email protected]. How do I access it?. How do I access it?. How do I access it?. - PowerPoint PPT Presentation

Citation preview

Page 1: Cluster Computing at IQSS

Cluster Computing at IQSS

Alex Storer, Research Technology Consultant

Page 2: Cluster Computing at IQSS

What is the RCE? Research Computing Environment For research in the social sciences Get an account! [email protected]

Page 3: Cluster Computing at IQSS

How do I access it?

Page 4: Cluster Computing at IQSS

How do I access it?

Page 5: Cluster Computing at IQSS

How do I access it?

Page 6: Cluster Computing at IQSS

How do I access it?

Page 7: Cluster Computing at IQSS

What are your needs?

Gigantic Process Many Processes

Page 8: Cluster Computing at IQSS

Gigantic Process

RCE Powered

Page 9: Cluster Computing at IQSS

Gigantic Process

RCE Powered

Applications

Request Up to 256gb

RAM

Run a job for up to 5 days*

Graphical/Windowed

experience of Stata,

Matlab, etc.

Page 10: Cluster Computing at IQSS

RCE Powered

Page 11: Cluster Computing at IQSS

Many Processes

Input Output

Page 12: Cluster Computing at IQSS

Many Processes

Input 1 Output 1Input 2 Output 2Input 3 Output 3Input 4 Output 4Input 5 Output 5

Page 13: Cluster Computing at IQSS

Many Processes

Condor• Schedules which jobs go to which available machines

• Called from the command line

• Reads in 'submit' files

Page 14: Cluster Computing at IQSS

Example: Simulating You have a model that takes 30 minutes to run

and computes a result You want to establish confidence intervals for this

number by running it many times

Page 15: Cluster Computing at IQSS

Example .submit file

Page 16: Cluster Computing at IQSS

Example .submit file

What command do I run?

Page 17: Cluster Computing at IQSS

Example .submit file

What arguments do I give to the command?

Page 18: Cluster Computing at IQSS

Example .submit file

What input do I give to the command?

Page 19: Cluster Computing at IQSS

Example .submit file

Where do I save the outputs?

Page 20: Cluster Computing at IQSS

Example .submit file

How many times do I run this?

Page 21: Cluster Computing at IQSS

Example .submit file

/usr/bin/R --no-save --vanilla < simulate.R > out.1/usr/bin/R --no-save --vanilla < simulate.R > out.2.../usr/bin/R --no-save --vanilla < simulate.R > out.10

Unix Standard Input/Output

Page 22: Cluster Computing at IQSS

How to submit a file

condor_submit simulate.submit

Page 23: Cluster Computing at IQSS

Your out.0 fileIt's just everything that R writes to the screen from the script!

Page 24: Cluster Computing at IQSS

Example: Simulating Instead of using the out.$(Process) structure, you

can save the data in your script You cannot expect the Processes to complete in

order! You shouldn't write to the same file until all

processes are complete Instead of calling a script, use a function

Page 25: Cluster Computing at IQSS

Example: Simulating (with a function)

• procid is an input

• We tell the function what to save and where to save it

Page 26: Cluster Computing at IQSS

Example: submitting a function in batch

Execute this command in R. Specifically, run the simfunction.R file which we defined on the previous slide.

Page 27: Cluster Computing at IQSS

Example: submitting a function in batch

Execute this command in R. Specifically, call the function sim.function with the input as $(Process).sim.function(0)sim.function(1)…

Page 28: Cluster Computing at IQSS

Example: submitting a function in batch

We are no longer using the standard input and standard output, so we can leave these blank.

Page 29: Cluster Computing at IQSS

MATLAB Example An example where we need to do the same thing

to a number of data files and write out the results Call a function which knows how to map the

process ID to the data to load

Page 30: Cluster Computing at IQSS

MATLAB function

Page 31: Cluster Computing at IQSS

MATLAB function

We will pass $(process) as the function input

Page 32: Cluster Computing at IQSS

MATLAB function

Try to load:

data_0.mat

data_1.matetc.

Page 33: Cluster Computing at IQSS

MATLAB function

Compute the relevant result.

Page 34: Cluster Computing at IQSS

MATLAB function

Save the results as:

result_0.mat

result_1.matetc.

Page 35: Cluster Computing at IQSS

.submit File Example

The Arguments section is the most important, let's look at each piece individually

Page 36: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

Start the arguments with double quotes (")

Page 37: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

-nodisplay tells Matlab to not pop up the GUI

Page 38: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

-singleCompThread tells Matlab to use only one core (this is what condor expects)

Page 39: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

-r tells Matlab to execute whatever commands come next.

Page 40: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

Put the commands to run in single quotes.

Page 41: Cluster Computing at IQSS

.submit File Example

Do NOT try to write your entire Matlab script in the submit file!

Some arguments must be executed before calling your script, however…

Page 42: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

The commands to Matlab will go on inside the single quotesThey must be on a single line!

Page 43: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

setenv(''HOME'',''nfs/home/A/astorer''); cd(''/nfs/home/A/astorer/Work/outreach/matlab''); mytest($(PROCESS))

Page 44: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

setenv(''HOME'',''nfs/home/A/astorer''); cd(''/nfs/home/A/astorer/Work/outreach/matlab''); mytest($(PROCESS))

setenv is required for Matlab to load your local preferences.You must use two single quotes instead of one single quote.Remember to set your own home directory, e.g. nfs/home/J/jdoe

Page 45: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

setenv(''HOME'',''nfs/home/A/astorer''); cd(''/nfs/home/A/astorer/Work/outreach/matlab''); mytest($(PROCESS))

Change to the directory that contains the script you want to run.

Page 46: Cluster Computing at IQSS

.submit File Example

Arguments = "-nodisplay –singleCompThread –r ''"

setenv(''HOME'',''nfs/home/A/astorer''); cd(''/nfs/home/A/astorer/Work/outreach/matlab''); mytest($(PROCESS))

Finally, run the function on the $(PROCESS) variable.

Page 47: Cluster Computing at IQSS

Example submission Because our function reads in data, we generate

the data ahead of time This is what is in our directory before submitting

(ls lists directory contents)

Notice that we count starting from 0!

Page 48: Cluster Computing at IQSS

Example submission Use condor_submit to submit the file Depending on the job, this may take some time to

complete!

Page 49: Cluster Computing at IQSS

Example submission Use condor_q <username> to check the status of

your jobs Use condor_rm <username> to clear your jobs.

Page 50: Cluster Computing at IQSS

Example submission Use condor_q <username> to check the status of your

jobs When this returns with no result, your jobs are complete.

Page 51: Cluster Computing at IQSS

Example submission Results!

Page 52: Cluster Computing at IQSS

Stata Example

Universe = vanillaExecutable = /usr/local/bin/stata-mpArguments = donotification = Completenotify_user = [email protected]

input = Test.dooutput = Test.outerror = Test.errLog = Test.logQueue 1

This is like running stata-mp do Test.do

Page 53: Cluster Computing at IQSS

Notification!

Universe = vanillaExecutable = /usr/local/bin/stata-mpArguments = donotification = Completenotify_user = [email protected]

input = Test.dooutput = Test.outerror = Test.errLog = Test.logQueue 1

You can get e-mails when your job is done!

Page 54: Cluster Computing at IQSS

Debugging If your results aren't as expected, first check the

error files

Page 55: Cluster Computing at IQSS

My jobs never finish?! Sometimes, jobs aren't well formed and condor

won't know what to do Condor will hold these jobs Your submit file is probably wrong somehow – try

looking at the log file as well as the submit file

H stands for "Held"