SLIDE 1 Presenter: ¡Paul ¡Marshall ¡
University ¡of ¡Colorado ¡at ¡Boulder ¡ Ma7hew ¡Woitaszek, ¡Henry ¡Tufo, ¡Rob ¡Knight, ¡ ¡ Daniel ¡McDonald, ¡Julia ¡Goodrich, ¡Jeremy ¡Widmann ¡
SLIDE 2
BioinformaHcs ¡Knowledge ¡Environment ¡ Workload ¡characterisHcs ¡ High ¡Throughput ¡CompuHng ¡(HTC) ¡on ¡the ¡
Blue ¡Gene/L ¡
ImplementaHon ¡ Results ¡
SLIDE 3
Encourage ¡collaboraHon ¡among ¡structural ¡
biologists, ¡environmental ¡microbiologists, ¡and ¡ evoluHonary ¡biologists ¡
Understanding ¡the ¡structure ¡and ¡funcHons ¡of ¡
the ¡biomolecules ¡that ¡are ¡used ¡to ¡infer ¡ phylogeny ¡
Emerging ¡gene ¡sequencing ¡technologies ¡yield ¡
hundreds ¡of ¡thousands ¡of ¡sequences ¡
SLIDE 4
Compute ¡and ¡Storage ¡Resources ¡ ApplicaHons ¡ Grid ¡Technologies ¡and ¡Web ¡Services ¡ Workflow ¡Management ¡ Data ¡Provenance ¡ Tools ¡ Search ¡ Tools ¡ CollaboraHon ¡ Tools ¡ Web ¡Portal ¡
SLIDE 5
FastTree ¡ Clearcut ¡ RAxML ¡
SLIDE 6 Many ¡small ¡input ¡files ¡
- 5KB ¡up ¡to ¡a ¡few ¡hundred ¡KB ¡
- To ¡date ¡we ¡have ¡processed ¡over ¡three ¡million ¡input ¡
sequences ¡
Many ¡small ¡output ¡files ¡ Command ¡line ¡execuHon ¡ Parameter ¡sweeps ¡ RunHmes: ¡
- RAxML: ¡tens ¡of ¡minutes ¡up ¡to ¡a ¡few ¡hours ¡
- Clearcut ¡and ¡FastTree: ¡tens ¡of ¡seconds ¡up ¡to ¡tens ¡of ¡
minutes ¡
SLIDE 7
Why ¡not ¡Blue ¡Gene/P? ¡ Why ¡not ¡a ¡Linux ¡cluster? ¡ Why ¡not ¡Condor? ¡ Why ¡not ¡the ¡Cloud? ¡ ¡
SLIDE 8
Our ¡primary ¡large-‑scale ¡compuHng ¡system ¡ Frost: ¡8192-‑core ¡Blue ¡Gene/L ¡at ¡the ¡NaHonal ¡
Center ¡for ¡Atmospheric ¡Research ¡(NCAR) ¡
Intended ¡for ¡massively ¡parallel ¡MPI ¡
applicaHons ¡
Users ¡allocate ¡processors ¡in ¡64-‑core ¡parHHons ¡
SLIDE 9 64-‑core ¡parHHons ¡reserved ¡by ¡a ¡single ¡user ¡ However, ¡now ¡individual ¡cores ¡can ¡execute ¡
different ¡executables ¡
But, ¡no ¡mechanism ¡for ¡dispatching ¡tasks ¡
- Hardcoded ¡launcher ¡
- execve ¡
- Reboot ¡
SLIDE 10 Cobalt Scheduler General HTC Task Launcher Arbitrary Executable Dispatcher
DB
mpirun cqsub execve reboot node after program termination
Ensemble Generator
TCP
SLIDE 11 Dedicated ¡database ¡server ¡ Over ¡a ¡million ¡tasks ¡added ¡to ¡the ¡database ¡at ¡
Tasks ¡dispatched ¡to ¡over ¡1000 ¡cores ¡
- Query ¡the ¡database ¡
- Update ¡records ¡
Database ¡completely ¡overwhelmed ¡
- Database ¡tweaks ¡(prefetching) ¡didn’t ¡help ¡enough ¡
SLIDE 12
More ¡resources ¡ Modify ¡the ¡applicaHons ¡to ¡bundle ¡tasks ¡ Eliminate ¡the ¡database ¡
SLIDE 13 Eliminate ¡the ¡database ¡ Avoid ¡tracking ¡individual ¡items ¡in ¡memory ¡or ¡
a ¡database ¡
Ensembles ¡
- Data ¡set ¡represented ¡as ¡files ¡on ¡disk ¡
- Generators ¡that ¡define ¡the ¡operaHons ¡to ¡be ¡
performed ¡on ¡individual ¡data ¡elements ¡
SLIDE 14
Python ¡ensemble ¡dispatcher ¡that ¡runs ¡on ¡the ¡
front ¡end ¡nodes ¡
Ensemble ¡dispatcher ¡imports ¡generators ¡ Launcher ¡(wri7en ¡in ¡C) ¡executes ¡on ¡compute ¡
nodes ¡
CommunicaHon ¡between ¡dispatcher ¡and ¡
launchers ¡over ¡TCP ¡with ¡a ¡custom ¡protocol ¡
SLIDE 15 Iterate ¡through ¡the ¡data ¡set ¡ ¡ Yield ¡an ¡operaHon ¡to ¡be ¡performed ¡on ¡each ¡
data ¡element ¡
- Executable ¡ ¡
- Parameters ¡
- Standard ¡output ¡file ¡
- Standard ¡error ¡file ¡
SLIDE 16 Generators ¡are ¡implemented ¡as ¡custom ¡
Python ¡modules ¡
- Create ¡one ¡generator ¡for ¡each ¡ensemble ¡
- Examine ¡output ¡directories ¡for ¡recovery ¡
SLIDE 17 SHll ¡slow ¡ PossibiliHes: ¡
- Ensemble ¡dispatcher ¡
- Blue ¡Gene/L ¡
Looking ¡closer: ¡
- Node ¡reboots ¡between ¡each ¡task ¡
SLIDE 18 EliminaHng ¡node ¡reboot ¡overhead ¡ Include ¡dispatcher ¡integraHon ¡in ¡applicaHon ¡
executables ¡
- Wrap ¡the ¡program’s ¡main() ¡funcHon ¡with ¡code ¡to ¡
contact ¡the ¡dispatcher ¡ ¡
- If ¡program ¡executes ¡successfully ¡it ¡loops ¡to ¡receive ¡
another ¡task ¡
SLIDE 19 Cobalt Scheduler Pass-Through HTC Launcher Wrapped Executable mpirun cqsub execve reboot node after fatal termination next task Dispatcher
Ensemble Generator
TCP
SLIDE 20
ProblemaHc ¡if ¡the ¡applicaHon’s ¡programmers ¡
did ¡not ¡follow ¡good ¡memory ¡management ¡ pracHces ¡
Global ¡variables ¡must ¡be ¡reiniHalized ¡properly ¡ Loss ¡of ¡generality ¡
SLIDE 21
Measure ¡task ¡cycle ¡Hme ¡ Hardcoded ¡null ¡tasks ¡(sleep ¡0 ¡seconds) ¡ Execute ¡from ¡1 ¡core ¡to ¡64 ¡cores, ¡then ¡mulHple ¡
64 ¡core ¡parHHons ¡
SLIDE 22
SLIDE 23 Task ¡cycle ¡Hme ¡increases ¡as ¡more ¡processors ¡
are ¡booted ¡on ¡a ¡single ¡64-‑core ¡parHHon ¡
- When ¡a ¡processor ¡boots ¡its ¡kernel ¡is ¡transferred ¡
- ver ¡the ¡100 ¡Mbps ¡JTAG ¡service ¡network ¡
- Each ¡64-‑core ¡parHHon ¡contains ¡1 ¡service ¡
connecHon, ¡nodes ¡uHlize ¡it ¡in ¡a ¡serial ¡fashion ¡
SLIDE 24
SLIDE 25
SLIDE 26
Wrapped ¡Clearcut ¡executable ¡ 12,600 ¡unique ¡input ¡files ¡ 256 ¡nodes ¡with ¡512 ¡cores ¡ Original ¡Clearcut: ¡2694 ¡seconds ¡ Wrapped ¡Clearcut: ¡844 ¡seconds ¡
SLIDE 27
The ¡Blue ¡Gene/L ¡is ¡able ¡to ¡process ¡our ¡
bioinformaHcs ¡workload ¡efficiently ¡
For ¡long ¡running ¡tasks ¡there ¡is ¡no ¡need ¡to ¡
wrap ¡the ¡executable ¡
Short ¡running ¡tasks ¡should ¡be ¡wrapped ¡ Ensemble ¡dispatcher ¡maintains ¡minimal ¡state ¡
in ¡RAM ¡and ¡can ¡efficiently ¡resume ¡execuHon ¡ by ¡examining ¡output ¡directories ¡
SLIDE 28 Deploy ¡on ¡more ¡resources ¡
- Grid ¡resources ¡(TeraGrid) ¡
- Cloud ¡resources ¡(Amazon, ¡Nimbus ¡Clouds) ¡
Current ¡work ¡is ¡only ¡a ¡preliminary ¡step ¡
towards ¡the ¡larger ¡bioinformaHcs ¡knowledge ¡ environment ¡
- Integrate ¡the ¡ensemble ¡dispatcher ¡into ¡the ¡
knowledge ¡environment ¡
- Create ¡and ¡manage ¡dynamically ¡
- Data ¡annotaHon ¡and ¡provenance ¡
SLIDE 29
Paul ¡Marshall ¡ University ¡of ¡Colorado ¡at ¡Boulder ¡ paul.marshall@colorado.edu ¡