Cluster Computing

From Peyton Hall Documentation

(Difference between revisions)
Jump to: navigation, search
(Updated status with information as of today)
Current revision (13:11, 15 October 2015) (view source)
(Hydra is no more, hasn't been for over three years.)
 
(5 intermediate revisions not shown.)
Line 3: Line 3:
== Introduction ==
== Introduction ==
-
So what is a cluster?  It's a set of machines, usually (but not necessarily) on a private network which is attached to a dual-homed "master node".  Dual-homed means it sits on two networks at the same time, and may even act as a router between the two.  This master node will allow logins, and is where you setup your large parallel jobs.  Once the job is submitted, software on the master connects to the drones and runs the job there.  This software is designed to fairly execute programs when there is available resources for them, and make sure that someone doesn't start a job on the same nodes that you're using for your processes so that everyone's programs get fair share of the machine.
+
So what is a cluster?  It's a set of machines, usually (but not necessarily) on a private network which is attached to a dual-homed "master node".  Dual-homed means it sits on two networks at the same time, and may even act as a router between the two.  This master node can allow logins, and is where you setup your large parallel jobs.  Once the job is submitted, software on the master connects to the drones and runs the job there.  This software is designed to fairly execute programs when there is available resources for them, and make sure that someone doesn't start a job on the same nodes that you're using for your processes so that everyone's programs get fair share of the machine.
-
== Hydra ==
+
== Research Computing ==
-
Hydra is a <s>92</s> ([[Cluster Computing#Status|'''73''']]) node Beowulf cluster housed in the basement server room of Peyton HallEight of the nodes have only 1GB of memory, another eight have 2GB of memory, and the remainder have 4GB. The nodes have dual processors ranging in speed from 2.2GHz to 3.06GHz.
+
Research Computing maintains many HPC clusters.  Information on them is available at [http://www.princeton.edu/researchcomputing/ their website].  There's also a page for [http://www.princeton.edu/researchcomputing/access/ prospective users] describing what is needed to get an account there.
-
'''Not all nodes are online presently. See the status message in the next section.'''
 
-
 
+
== Hydra ==
-
=== Status ===
+
We used to have a cluster of our own named "Hydra", however it was finally decommissioned in 2012 after having been converted to a general Condor cluster and slowly dismantled.  The head node lives on (in spirit, at least) as the controller for our Condor infrastructure, which lets you submit jobs to run during idle cycles of desktops and other machines around the department.
-
This section will be updated with status information for Hydra as necessary.
+
-
* '''2008-04-11:''' The entire cluster has been upgraded to PU_IAS Linux 5.1 (a RedHat Enterprise variant). This distribution has much newer software and libraries than hydra's old distro, which was painfully out of date. Given the latest generation of compilers and MPI libraries, we highly suggest recompiling your code before submitting new jobs. Hydra is currently in a limited test state, we will eventually (soon, hopefully) be reinstating full access to the cluster to all who had accounts, but for now, we are in a shakedown period.
+
-
* '''2008-04-11:''' The current state of the hardware is:
+
-
** Hydra is currently running with only 73 nodes available. We had several hardware failures during the reinstall. We intend to try and get a few more nodes fixed and added to the pool, stay tuned.
+
-
** Presently there are no 1GB nodes available, and our intent is to make the minimum memory on the whole cluster 2GB per node, if not 4.
+
-
** Hydra's hardware is incapable of running 64-bit, so the upgrade didn't include a move to a 64-bit OS,
+
-
* An additional RAID array has been installed on the Hydra cluster, named Chimera. Its scratch disk is mounted on Hydra as /chimera. To access it from the rest of the department, use the path /peyton/scr/chimera0. It is mounted to all the nodes, also as /chimera, and should be the preferred location for storing inputs and outputs from your programs.
+
-
* The Chimera disk (/chimera on Hydra, and /peyton/scr/chimera0 elsewhere) is truly a scratch disk, in that it is not and will not be backed up. It is a hardware RAID-5 array with one hot spare disk, and should handle most hardware failures without incident.
+
-
* There is another storage space on Cerberus, mounted as /work on Hydra. This disk used to be mounted on the nodes directly as well, however NFS load problems and network overloading caused it to be unmounted.
+
-
* Some usage policies have been posted; please feel free to comment on them by sending mail to the cluster list. They are not strict policies that must be adhered to, but more like general guidelines to be kept in mind while submitting jobs to the systems. They are posted [[Cluster Computing#Hydra usage policies|below]].
+
-
* Also, a bug was recently fixed in PBS, which caused every node to report having only 864MB of memory. Each node now properly reports the amount of RAM it has, so everyone should be specifying the amount of memory your jobs require through the PBS resource list ("#PBS -l mem=1380MB", for example). Maui will Do The Right Thing and only assign the job to a node with that much available RAM.
+
-
 
+
-
 
+
-
=== Getting access to Hydra ===
+
-
Students or postdocs wishing to use hydra for computations should discuss with their supervisor whether use of hydra is called for (i.e., parallel computations are needed, and whether the code has been debugged and appropriately optimized).  The supervisor should [[Requesting assistance|contact us]] and request that the student or postdoc be given access to hydra, and confirm that the research problem calls for parallel computations.  We'll add your account to the list of those allowed to login, and create the necessary directories on the scratch disks for you to store data.
+
-
 
+
-
 
+
-
=== Hydra usage policies ===
+
-
The following policies should be kept in mind while running jobs on the clusters.  They are not strict rules, but more like guidelines to make sure that all users get a fair share of the processors.
+
-
* Any user who wants to run lengthy jobs on more than about half the available processors at one time should announce this fact to the cluster mailing list in advance.  How far in advance should depend on the length of the jobs.  For instance, if the jobs will be running for a day or more, then a day or half a day in advance would be appropriate.  If the jobs will take a few hours, an hour or so of advance notice is probably enough.
+
-
* Several, perhaps 5 or 6, processors should be left available at most or all times for relatively short-running jobs (on the order of an hour or less).  Of course, if your job requires all the processors of the cluster, this doesn't mean you can't run it, but should definitely ask around the cluster list first to make sure others don't have jobs they will need to run during that time.
+
-
* Jobs should not be run on Hydra itself, nor should any intensive programs be run on it (for example, IDL or Mathematica).  The master node is primarily for controlling the cluster and storing input or output data, as well as compiling code that will run on the machines.  Running programs such as IDL on the master node takes away from the CPU time and memory available to other users for compiling and the scheduling processes.  Processes such as these may be killed, especially if they're eating up resources.
+
-
* If you are submitting for publication a paper that uses computational results obtained on hydra, please acknowledge support from NSF grant AST-0216105 [e.g., "This research used computational facilities supported by NSF grant AST-0216105"].  Please send email to draine@astro.princeton.edu with information on the paper (title, author, where submitted) for use in reporting to the NSF on use of the cluster.
+
=== Submitting jobs to Hydra ===
=== Submitting jobs to Hydra ===
-
Hydra uses the Portable Batch System ([[PBS]]) for job management.  You'll find information about how to use it in the [[PBS|PBS article]].
+
Hydra uses [[Condor]] for job management.  You'll find information about how to use it in the [[Condor|Condor article]].
-
 
+
-
 
+
-
== FAQ ==
+
-
=== I have a bunch of serial jobs to run. ===
+
-
Don't use a cluster for them.  Clusters are built with high performance networking, high speed disk access, and many tweaks to tune the most performance out of computers for parallel processing jobs - those that use multiple processes spread across many computers.  Serial jobs will clog a cluster, since all they do is use a single CPU, and tend to read or write a lot of data to disk (which also clogs the I/O system of the cluster), while parallel jobs tend to talk to each other to exchange data, writing checkpoint information to disk as necessary (and usually only from one process, not all of them).  If you have serial jobs to run, you should use [[Condor]] to submit them to the idle machines in the building instead of tying up nodes of the cluster.
+
-
 
+
-
 
+
-
=== Can I speed up my compiling? ===
+
-
Yes, you can speed things up with the '-j' option to make. From the man page:
+
-
 
+
-
-j jobs
+
-
    Specifies the number of jobs (commands) to run simul�-
+
-
    taneously.  If there is more than one -j option, the
+
-
    last one is effective.  If the  -j  option  is  given
+
-
    without  an  argument, make will not limit the number
+
-
    of jobs that can run simultaneously.
+
-
 
+
-
So using 'make -j2' will cause make to run 2 instances at the same time, which is good for a dual-processor machine.  If you want it to just run wild, run 'make -j', and it will fork as many as it can at the same time.
+
-
 
+
-
 
+
-
== See also ==
+
-
* [[Condor]], a batch scheduling system which is perfect for serial jobs that would otherwise clog the cluster.
+
-
* [[MPICH]], an implementation of the Message Passing Interface commonly used in large parallel jobs.
+
[[Category:Cluster Computing]]
[[Category:Cluster Computing]]

Current revision

No, we're not talking about star clusters - not this time, anyway. We're talking about Beowulf clusters, or to use a more general term "computer clusters". Not the same as what OIT calls their "computer labs".


Contents

Introduction

So what is a cluster? It's a set of machines, usually (but not necessarily) on a private network which is attached to a dual-homed "master node". Dual-homed means it sits on two networks at the same time, and may even act as a router between the two. This master node can allow logins, and is where you setup your large parallel jobs. Once the job is submitted, software on the master connects to the drones and runs the job there. This software is designed to fairly execute programs when there is available resources for them, and make sure that someone doesn't start a job on the same nodes that you're using for your processes so that everyone's programs get fair share of the machine.


Research Computing

Research Computing maintains many HPC clusters. Information on them is available at their website. There's also a page for prospective users describing what is needed to get an account there.


Hydra

We used to have a cluster of our own named "Hydra", however it was finally decommissioned in 2012 after having been converted to a general Condor cluster and slowly dismantled. The head node lives on (in spirit, at least) as the controller for our Condor infrastructure, which lets you submit jobs to run during idle cycles of desktops and other machines around the department.


Submitting jobs to Hydra

Hydra uses Condor for job management. You'll find information about how to use it in the Condor article.

Personal tools