SlideShare a Scribd company logo
Quest Cluster Computing for the Amaral lab
Adam Pah

8.21.14
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
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
How is Quest set up to handle all these users?
There are
log-in nodes
How is Quest set up to handle all these users?
There are
log-in nodes
And then
compute
nodes that
actually
execute jobs
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”
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
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
So what is Quest like?
SSH as:

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

[netid]@quest.it.northwestern.edu
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
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
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
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
What python are we
using?
Quest has a number of
prepared “modules” for
researchers to use
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
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
What python are we
using?
This anaconda environment already has a lot of what we
use installed
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
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
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
How do I get files to Quest?
Two choices:
1) check out a repository
How do I get files to Quest?
Two choices:
1) check out a repository
2) SCP files
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
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
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”
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!
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
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
That’s it! Life’s good!

More Related Content

PDF
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
PDF
The Puppet Master on the JVM - PuppetConf 2014
ODP
Introduction to Python Celery
PDF
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
KEY
20120524 english lt2_pythontoolsfortesting
PDF
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
PDF
Puppet Development Workflow
PDF
Ansible Crash Course
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
The Puppet Master on the JVM - PuppetConf 2014
Introduction to Python Celery
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
20120524 english lt2_pythontoolsfortesting
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Development Workflow
Ansible Crash Course

What's hot (20)

PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
PPTX
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
PDF
Ansible and AWS
PDF
Steamlining your puppet development workflow
PDF
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
PDF
Modern Infrastructure from Scratch with Puppet
PPTX
Go Faster with Ansible (AWS meetup)
PDF
Masterless puppet
PDF
Boxen: How to Manage an Army of Laptops
PDF
Superb Supervision of Short-lived Servers with Sensu
KEY
Celery
PDF
Ignacy Kowalczyk
PPTX
Ansible module development 101
PDF
ITP Spacebrew Workshop - Spring 2014
PPTX
Rapid Application Design in Financial Services
KEY
PyCon US 2012 - Web Server Bottlenecks and Performance Tuning
PPTX
Monitoring and tuning your chef server - chef conf talk
PPTX
Storm distributed processing
PDF
[Js hcm] Deploying node.js with Forever.js and nginx
PPTX
Docker ansible-make-chef-puppet-unnecessary-minnihan
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Ansible and AWS
Steamlining your puppet development workflow
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Modern Infrastructure from Scratch with Puppet
Go Faster with Ansible (AWS meetup)
Masterless puppet
Boxen: How to Manage an Army of Laptops
Superb Supervision of Short-lived Servers with Sensu
Celery
Ignacy Kowalczyk
Ansible module development 101
ITP Spacebrew Workshop - Spring 2014
Rapid Application Design in Financial Services
PyCon US 2012 - Web Server Bottlenecks and Performance Tuning
Monitoring and tuning your chef server - chef conf talk
Storm distributed processing
[Js hcm] Deploying node.js with Forever.js and nginx
Docker ansible-make-chef-puppet-unnecessary-minnihan
Ad

Similar to Quest overview (20)

PPTX
OpenWhisk Go Runtime
PDF
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
PDF
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
PDF
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
PDF
Packaging perl (LPW2010)
PPTX
Automation in Cloud
PPTX
From Ant to Rake
PPTX
Matt Franklin - Apache Software (Geekfest)
PPTX
Learn you some Ansible for great good!
PDF
Infrastructure as Code, Theory Crash Course
PDF
Build an Infra Product with AWS Fargate
PDF
Packaging is the Worst Way to Distribute Software, Except for Everything Else
PPTX
MongoDB Ops Manager and Kubernetes - James Broadhead
PPTX
Delivery Pipelines with Docker (GDC 2016, Riot Games)
PDF
How to Reverse Engineer Web Applications
PDF
FireWorks workflow software
PPTX
Steelcon 2014 - Process Injection with Python
PPTX
Chef + AWS + CodeIgniter
PDF
Toplog candy elves - HOCM Talk
PDF
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
OpenWhisk Go Runtime
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
Packaging perl (LPW2010)
Automation in Cloud
From Ant to Rake
Matt Franklin - Apache Software (Geekfest)
Learn you some Ansible for great good!
Infrastructure as Code, Theory Crash Course
Build an Infra Product with AWS Fargate
Packaging is the Worst Way to Distribute Software, Except for Everything Else
MongoDB Ops Manager and Kubernetes - James Broadhead
Delivery Pipelines with Docker (GDC 2016, Riot Games)
How to Reverse Engineer Web Applications
FireWorks workflow software
Steelcon 2014 - Process Injection with Python
Chef + AWS + CodeIgniter
Toplog candy elves - HOCM Talk
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Ad

More from Adam Pah (7)

PPTX
Why Python?
PDF
A quick overview of why to use and how to set up iPython notebooks for research
PDF
Pah res-potentia-netsci emailable-stagebuild
PDF
Kaggle "Give me some credit" challenge overview
PDF
D3 interactivity Linegraph basic example
PDF
Mercurial Tutorial
PDF
Introduction to Mercurial, or "Why we're switching from SVN no matter what"
Why Python?
A quick overview of why to use and how to set up iPython notebooks for research
Pah res-potentia-netsci emailable-stagebuild
Kaggle "Give me some credit" challenge overview
D3 interactivity Linegraph basic example
Mercurial Tutorial
Introduction to Mercurial, or "Why we're switching from SVN no matter what"

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Big Data Technologies - Introduction.pptx
PPT
Teaching material agriculture food technology
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
1. Introduction to Computer Programming.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Machine Learning_overview_presentation.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Big Data Technologies - Introduction.pptx
Teaching material agriculture food technology
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Digital-Transformation-Roadmap-for-Companies.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
gpt5_lecture_notes_comprehensive_20250812015547.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
1. Introduction to Computer Programming.pptx
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine Learning_overview_presentation.pptx
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf

Quest overview

  • 1. Quest Cluster Computing for the Amaral lab Adam Pah 8.21.14
  • 2. 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
  • 3. 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
  • 4. How is Quest set up to handle all these users? There are log-in nodes
  • 5. How is Quest set up to handle all these users? There are log-in nodes And then compute nodes that actually execute jobs
  • 6. 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”
  • 7. 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
  • 8. 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
  • 9. So what is Quest like? SSH as:
 [netid]@quest.it.northwestern.edu
  • 10. So what is Quest like? SSH as:
 [netid]@quest.it.northwestern.edu
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. What python are we using? Quest has a number of prepared “modules” for researchers to use
  • 16. 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
  • 17. 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
  • 18. What python are we using? This anaconda environment already has a lot of what we use installed
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. How do I get files to Quest? Two choices: 1) check out a repository
  • 23. How do I get files to Quest? Two choices: 1) check out a repository 2) SCP files
  • 24. 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
  • 25. 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
  • 26. 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”
  • 27. 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!
  • 28. 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
  • 29. 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