QCG Simple Client

Requirements

brudne notatki:
-q queue - kolejka, BROKER jest, COMP jest
-a data_godzina - BROKER ?, COMP nie ma
-n nazwa - jest w COMP, w BROKER mapowane z ... 
-h hold - w COMP nie ma, w BROKERze - two phase commit
-I interaktywne - brak wsparcia
-A project -> grant (jest wsparcie)
-l zasoby -
* procs/ncpus - liczba procesorw
* nodes=N:ppn=4 - wymuszenie topologi 
* propertiesy wezlow, np.:
** Wroclaw: epoch, hp,u3,old,oldest
** Cyfronet: mhz2400,mem24gb,sl5,n18-4,core12,ib_mlx,ib_all,infiniband
** Reef: g6,intel,lustre,ib,mpi 
* -lmem pamiec=

Podsumowanie: większość funkcji jest obsługiwana:

  • wybór kolejki (rozszerzenie QCG JSDL'a)
  • walltime
  • wybor liczby procesorow (TotalCPUCount) lub topologi (TotalResourcesCount? (nodes), IndividualCPUCount (ppn))
  • grant
  • pamięć (TotalMem?...) per zadanie

Nieobsługiwane a stosunkowo łatwe do zaimplementowania:

  • start_time

Do przeanalizowania: obsługa wyboru właściwości węzłów. Mi znane są trzy scenariusze użycia:

  • wybór węzłów które wspierają MPI'a (tj. mają infiniband)
    • Reef: mpi = ib = lustre (tozsame - pytanie czy przypadek)
    • Zeus, ib_ql,ib_mlx,ib_all,infiniband
    • Nova: mpiprocs= ?? - zapytac Franka
  • wybór typu maszyny:
    • Reef: g6,g7 - generacje maszyny
    • Zeus: mhz2266,mhz2666, core12, core8, mhz2933
    • Nova: epoch: old, oldest, hp
  • próba wymuszenia exclusive execution
    • -lnodes=1:ppn=8:core8

Example Usage

$qcg-sub namd-heat.qcg
https://elder7.man.poznan.pl:8443/qcg/services/
/C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl
UserDN = /C=PL/O=GRID/O=PSNC/CN=Mariusz Mamonski
ProxyLifetime = 0 Days 11 Hours 58 Minutes 43 Seconds

jobId = J1323190911636_MAPPER_0453

$qcg-stat

J1322470624235_MAPPER_3875  NAMD-HeatSim PENDING  zeus.cyfronet.pl Tue Dec 06 18:03:51 CET 2011
J1323190911636_MAPPER_0453  NAMD-HeatSim RUNNING  reef.man.poznan.pl Tue Dec 06 18:03:51 CET 2011

$#get more details about the job
$qcg-stat -f J1323190911636_MAPPER_0453
Project: 
Status: FINISHED
StatusDesc: 
SubmissionTime: Mon Nov 21 17:14:02 CET 2011
FinishTime: Mon Nov 21 17:25:52 CET 2011
Number of tasks: 1
Tasks: muscle 

$#peek output
$qcg-tail J1323190911636_NAMD_0453

PRESSURE: 24900 -863.255 88.627 61.2041 88.627 -1193.43 -52.9547 61.2041 -52.9547 -648.782
GPRESSURE: 24900 -866.239 76.2074 146.951 189.718 -1193.24 -83.1279 -3.91253 6.39745 -558.545
PRESSAVG: 24900 -820.535 -15.3226 58.1293 -15.3226 -820.305 -3.98117 58.1293 -3.98117 -861.386
GPRESSAVG: 24900 -821.817 -12.1358 54.9592 -16.5475 -819.023 -7.80413 57.8684 1.23394 -861.644
TIMING: 24900  CPU: 652.185, 0.0212371/step  Wall: 652.185, 0.0212371/step, 0.00058992 hours remaining, 307.171875 MB of memory in use.
ENERGY:   24900       744.7528      1765.8203      1645.3611        54.6001        -136140.7135     11105.3437         0.0000         0.0000     22032.1463         -98792.6892       300.0076   -120824.8355    -98730.5984       301.2570           -901.8220      -872.6741    370968.0000      -834.0754      -834.1614


$#query all jobs, also finished
$ qcg-stat -a
J1322470624216_MAPPER_3147  NAMD-HeatSim FINISHED  zeus.cyfronet.pl Tue Dec 04 16:03:51 CET 2011
J1322470624235_MAPPER_3875  NAMD-HeatSim PENDING  zeus.cyfronet.pl Tue Dec 06 18:03:51 CET 2011
J1323190911636_MAPPER_0453  NAMD-HeatSim RUNNING  reef.man.poznan.pl Tue Dec 06 18:03:51 CET 2011

#refetch results if needed
# qcg-fetch-results J1323190911636_MAPPER_0453

$#start interactive job script as requirement
$qcg-sub -I komasa.qcg
...
job started
#cmake .
#make


Example QCG script

#!/bin/sh
#QCG 
#QCG queue=plgrid-wp4
#QCG walltime=0:01:00
#QCG procs=32
#or specifying topology
#QCG nodes=4:ppn=8
#QCG name=HeatSim
#QCG output=${jobid}.out
#QCG error=${joibd}.err
#QCG candidate_host=reef
## or the other way
#QCG blacklist_host=zeus,nova,gallera
#QCG stage-in=heat.namd
#QCG stage-in=test/2nue.modif.xplor.psf -> input.psf
#QCG stage-out=heat.coor
#QCG node_properties=mhz2666
#QCG watch_file=namd.log
#QCG grant=czastki2012
####forces selection of mpi capable nodes (e.g. ib_all, or lustre)
###QCG flavour=mpi - this now enforced automatically: if number of nodes>=2
#licenses or GPUs (TODO: check)
#QCG consumable_resources=MATLAB:1;SIMULINK=2
#last chance option
#QCG native="-l nodes=2:ppn=8+2:ppn=4 -S /bin/csh -r n"


#any module load/add command implicitly adds requirement on SP selection
module load namd 

charmrun namd2 heat.namd &> namd.log

translates to the following Job Profile: