quest overview

30
Quest Cluster Computing for the Amaral lab Adam Pah 8.21.14

Upload: adam-pah

Post on 15-Jul-2015

74 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Quest overview

Quest Cluster Computing for the Amaral lab

Adam Pah8.21.14

Page 2: Quest overview

What is Quest

• Quest is the computing cluster that is administered by Northwestern

• Quest is shared by all of Northwestern

• There are two ways to get time on Quest:

• Get an allocation of hours

• Purchase hardware to be added to Quest

• We purchased hardware to be added to Quest

Page 3: Quest overview

What did we purchase

• We purchased 9 nodes to be added to Quest

• Since we purchased hardware we have a project group that will be everyone in the lab

• Each node has:

• 12 cores per node

• 128 GB RAM per node

• So we can run 108 simultaneous jobs as a project group

Page 4: Quest overview

How is Quest set up to handle all these users?

There are log-in nodes

Page 5: Quest overview

How is Quest set up to handle all these users?

There are log-in nodes

And then compute

nodes that actually

execute jobs

Page 6: Quest overview

How is Quest set up to handle all these users?

There are log-in nodes

And then compute

nodes that actually

execute jobs

Jobs are submitted on log-in nodes to a “scheduler”

Page 7: Quest overview

How is Quest set up to handle all these users?

There are log-in nodes

And then compute

nodes that actually

execute jobs

Jobs are submitted on log-in nodes to a “scheduler”The “scheduler” finds a free compute node and runs the job

Page 8: Quest overview

How is Quest set up to handle all these users?

There are log-in nodes

And then compute

nodes that actually

execute jobs

Jobs are submitted on log-in nodes to a “scheduler”The “scheduler” finds a free compute node and runs the job

For us, it will find a free spot in the hardware that we purchased

Page 9: Quest overview

So what is Quest like?SSH as:[netid]@quest.it.northwestern.edu

Page 10: Quest overview

So what is Quest like?SSH as:[netid]@quest.it.northwestern.edu

Page 11: Quest overview

So what is Quest like?You will have a user directory, it is located at: /home/[netid]

Your user directory is limited to 50 GB and not backed up

Page 12: Quest overview

So what is Quest like?We also have a project directory, it is at: /projects/b1022

Our project directory is limited to 432 GB and it is shared by *EVERYONE* in the lab

Page 13: Quest overview

So how do I set up my user on Quest?

Quest isn’t the same as every other computer we have in the lab and there are some adjustments

I already created a bashrc, some shortcuts, and a script to make it as much like using phoenix as possible

So the first thing to do is get the bashrc that the lab will use

Page 14: Quest overview

Getting the lab bashrc

Copyable: $ cd ~ $ curl https://gist.githubusercontent.com/adamrpah/d0133fc9b36ad5854efe/raw/aa282448ae924592452c952f25632a27361deff6/amaral_quest_bashrc > .bashrc $ source ~/.bashrc

This puts LabTools on your path (LabTools is our projects folder)

It also sets up aliases so mercurial and python will work

Page 15: Quest overview

What python are we using?

Quest has a number of prepared “modules” for researchers to use

Page 16: Quest overview

What python are we using?

Quest has a number of prepared “modules” for researchers to use

These “modules” are prepackaged programming environments for a number of languages/use cases

Page 17: Quest overview

What python are we using?

Quest has a number of prepared “modules” for researchers to use

These “modules” are prepackaged programming environments for a number of languages/use cases

We’re using Anaconda

Page 18: Quest overview

What python are we using?

This anaconda environment already has a lot of what we use installed

Page 19: Quest overview

What python are we using?

This anaconda environment already has a lot of what we use installed

I created a virtual environment and added in the few missing packages that we use

Page 20: Quest overview

What python are we using?

This anaconda environment already has a lot of what we use installed

I created a virtual environment and added in the few missing packages that we use

To use this python on a log-in node or test to make sure a package is installed just do:

Note that the “actpy” command is unique and requires our lab bashrc

Page 21: Quest overview

What if I need a package installed?

Let myself, Nick, Joao, or June know and we’ll take care of it to the best of our ability

Anaconda uses pip to install packages, so almost all packages are good to go

However, this means that any package that won’t install cleanly with pip is now suspect!

We can ask the Quest team to take care of it, but that will take time

Page 22: Quest overview

How do I get files to Quest?

Two choices: 1) check out a repository

Page 23: Quest overview

How do I get files to Quest?Two choices: 1) check out a repository 2) SCP files

Page 24: Quest overview

How do I submit a job to Quest to run?

Actually, it’s pretty simple. I wrote a script that is in LabTools that abstracts away any differences on Quest

1) Navigate to directory with python code

Page 25: Quest overview

How do I submit a job to Quest to run?

Actually, it’s pretty simple. I wrote a script that is in LabTools that abstracts away any differences on Quest

1) Navigate to directory with python code 2) Submit the job with the “generate_qsub” script

Page 26: Quest overview

How do I submit a job to Quest to run?

Actually, it’s pretty simple. I wrote a script that is in LabTools that abstracts away any differences on Quest1) Navigate to directory with python code 2) Submit the job with the “generate_qsub” script 3) Check that the job is running with “qstat”

Page 27: Quest overview

How do I submit a job to Quest to run?

Actually, it’s pretty simple. I wrote a script that is in LabTools that abstracts away any differences on Quest

1) Navigate to directory with python code 2) Submit the job with the “generate_qsub” script 3) Check that the job is running with “qstat” 4) Enjoy!

Page 28: Quest overview

But what did all those options do?

The basics of that script are explained here: Torque Job Submission

Options: • —msub Quest uses the Moab scheduler, this makes a

moab submission file. This option is MANDATORY when using Quest

• —execute With this option the generate_qsub script will submit the job to the scheduler automatically

• —temporary This option will remove the submission scripts

Page 29: Quest overview

But what did all those options do?

There are other options (that have Phoenix in mind) but the other important one is:

• —kwargs This option takes in command arguments that your code uses

Page 30: Quest overview

That’s it! Life’s good!