= 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: {{{ }}}