230 likes | 312 Views
Explore the necessity of clusters, architecture, software, job management, task farming, and future plans in cluster computing. Learn about PBS job management commands and tasks, execution, and resource allocation. Discover the execution of task farming with examples.
E N D
PBS Job Management and Taskfarming Joachim Wagner 2008-07-24
Outline • Why do we need a cluster? • Architecture • Machines • Software • Job Management • Running jobs • Commands • PBS Job discriptions • Taskfarming • Plans
Why do we need a cluster? • Resource conflicts • Waiting for colleague’s job to finish • Trouble, e.g. disk full • Medium-size jobs • Too big for desktop PC • Too small for ICHEC • Preparation of ICHEC runs • Learning
Cluster Architecture maia.computing.dcu.ie Nodes SeparateNetwork SchoolNetwork LoginsHomeSoftware Job Queue
Installed Software • OpenMPI • SRILM • MaTrEx, Moses, GIZA++ • XLE, Sicstus • Johnson & Charniak’s reranking parser • In progress: • LFG AA, incl. function labeller
PBS Job Management User: JobDescription Job Submission Job Queue Job Scheduler Nodes are allocatedjob-exclusive for theduration of the job Job Execution
PBS Job Management Commands • qsub myjob.pbs • submits a job • PBS description: shell script with #PBS commands(ignored by shell, see next slide) • qstat, qstat –f jobnumber • qdel jobnumber • pbsnodes –a • list all nodes with status and properties
PBS Job Description Number of nodesCPUs/node Notification: end,begin and abort Maximum runtime
Node Properties • min4GB, min8GB: at least this much • mem4GB, mem8GB: exactly this much • long: please use this property for long jobs • will leave nodes that do not have this property available for other jobs • no limit enforced, but 24 h seems reasonable • Future: • 16 and 32 GB • CPU • local disk space (/tmp and swap)
CPU-Intensive Jobs • Parallelisable, for example • Sentence by sentence processing • Cross-validation runs • Parameter search • Split into parts • Run each part on a different CPU
Taskfarming TaskfarmingExecutable(n instances) PBS JobDescription childprocess reading 1 Master n-1 Worker MPICommunication Task file(.tfm):one taskper line Taskexecution
Taskfarming Executable • If Instance ID == 0 • Run master code loop: • Read .tfm file (arg 1) • Send lines to worker • Exit if no more task and all worker finished • Else • Run worker loop: • Ask master for a task • Execute task • Exit if master has no more tasks
Example: Taskfarming Helper Script run-package.sh
Example: Taskfarming in Action 000 003 006 011 CPU 1 001 005 008 009 012 CPU 2 idle 002 004 007 010 CPU 3 Master: reads .tfm and distributes tasks CPU 4 time
Example: Non-Terminating Task 000 003 006 (does not terminate) CPU 1 idle 001 005 008 009 011 CPU 2 idle 002 004 007 010 012 CPU 3 Master: reads .tfm and distributes tasks CPU 4 Killed atWalltimeLimit
Estimating the PBS Walltime Parameter • Collect durations from test run • Usually high variance of execution time • Long sentences • Parameters • Don’t use #packages x avg. time per package • High risk (~50 %) that more time is needed • Instead: Random sampling with observed package durations: /home/jwagner/tools/walltime.py
Effect of Task Size • Job will wait for last task to finish (or be killed when walltime limit is reached) • What if a task crashes? • Results are incomplete • Next tasks is executed • What if a task does not terminate? • Results are incomplete • Fewer CPUs available for remaining tasks • Overhead of starting tasks
Considering Multiple CPUs per Node • 4 CPU cores per node • 8 GB node -> 2 GB per core • CPUs compete for RAM • Swapping of one task effects the 3 other tasks • Relatively slow CPUs in nodes • Compared to new desktop PCs • Optimise throughput of cluster / EUR • Not: throughput of node or CPU • Depends on application
Plans • Fix sporadic errors of taskfarm.py • re-implentation in C • XML-RPC-based taskfarming • http-based • Run master on maia • Run workers also outside the cluster • Set parameters at runtime • Add more nodes (CNGL) • Install additional software
Questions ? Contact: Joachim Wagner CNGL System Administrator jwagner@computing.dcu.ie (01) 700 6915