1 / 23

Grid Computing with BatchMake

Grid Computing with BatchMake. Julien Jomier Kitware Inc. Motivation. Data Processing. Reports & Analysis. Algorithm Design & Implementation. Outline. Introduction to BatchMake Grid Computing with BatchMake Reporting with the BatchBoards BatchMake with Slicer.

elsa
Download Presentation

Grid Computing with BatchMake

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Grid Computing with BatchMake Julien JomierKitware Inc.

  2. Motivation Data Processing Reports & Analysis Algorithm Design & Implementation

  3. Outline • Introduction to BatchMake • Grid Computing with BatchMake • Reporting with the BatchBoards • BatchMake with Slicer

  4. Introduction to BatchMake • Batch script generator • Open-Source BSD license • Common Language (CMake-like) • Generation for: - Shell script - Condor - KWGrid • Run locally or on grid • Cross platform command line and GUI tool • C++ with ITK and FTLK

  5. BatchMake Workflow CommandLine Executable Local Execution ApplicationWrapper Shell Script BatchMake KWGrid Script Script Condor Script

  6. Application Wrapper • Describe command line arguments- Manually (GUI)- Automatically using itkMetaCommand • Internal XML format • .bmm files (BatchMake Modules) • Compatible with Slicer execution modules

  7. MetaCommand • C++ class for command line parsing • Output recognized by - BatchMake (-vxml) - Slicer (--xml) • command.SetOption("compileScript","c",false,"Compile a script"); command.AddOptionField("compileScript","filename",MetaCommand::STRING,true); • http://www.itk.org/Wiki/MetaIO • Insight/Utilities/MetaIO

  8. Example Script 1 -SetApp(imSeg @ImageSegmentation) 2 -SetAppOption(imSeg.threshold 10) 3 - 4 -Set(workdir '/BatchMake/Demo/Ellipse_Images') 5 -ListFileInDir(files ${workdir} '*.mha') 6 - 7 -Foreach(file ${files}) • - Set(filename '${workdir}/${file}') • - Set(outfile '${workdir}/out_${file}') 10-SetAppOption(imSeg.inputFilename ${filename}) 11-SetAppOption(imSeg.outputFilename ${outfile}) 12- Run(output ${imSeg}) 13-EndForeach(file)

  9. Condor • Specialized workload management system for compute-intensive jobs • Created by UW-Madison • Free for use • Provides job queuing mechanism, scheduling policy, priority scheme, resource monitoring, and resource management. • Unix and Windows

  10. Condor Example Script Universe = vanilla Executable = EMSegmenter Arguments = ‘brain.mha segmentation.mha --brain’ Output = emsegmentation.out Error = emsegmentation.error Log = emsegmentation.log Requirements = (OpSys =="LINUX" && Arch=="INTEL") Should_transfer_files = YES When_to_transfer_output = ON_EXIT_OR_EVICT Transfer_input_files = brain.mha Queue

  11. Condor Pool Condor Workflow (Vanilla) Central Manager Central Manager Unavailable Execute Machine Dispatch to Central manager = Unavailable Submit job Submit Machine Issue job Busy Workstation Available Execute Machine Central Manager Dispatch to Central manager = Available Execute Machines Idle Workstation Push out job to machine

  12. BatchMake Condor Generation

  13. BatchMake Condor Generation • Application/Module description - Inputs/Outputs - Data to transfer to nodes • Loop unrolling • Scope definition • Directed Acyclic Graph (DAG) • Ensure order of execution of jobs

  14. Monitoring Condor Jobs • Flock Monitor (Condor) • Condor Watcher (FLTK) • Condor Web Watcher (Ajax/PHP)

  15. Reporting with BatchMake Developers check-in code CVS/SVN CTest/DART compilessource code Developers review results + MIDASXNat BatchMake validateson datasets Results posted on web(i.e., the batchboard)

  16. Reporting with BatchMake

  17. BatchMake Server • PHP Scripts with MySQL database • Simple C++ HTTP post • Statistical Analysis (Factor analysis: Taguchi). • Dashboard creation capability • User management

  18. BatchBoard Script DashboardHost(http://www.insight-journal.org/batchmake) DashboardUser(‘Julien Jomier') DashboardKey('FKH3BPM1y11VXsMf') CreateExperiment(exp ‘Liver Project‘ ‘Segmentation Experiment' '') CreateMethod(Meth exp 'Registration' 'Register a T1 with noise to a translated T1') AddMethodInput(noiseImageName Meth 'Fixed Image') Set(fixedSlice '${fixedImage}Slice.png') ExtractSlice('${fixedImage}' '${fixedSlice}' 2 1) AddMethodInput(fixedSlice Meth 'Fixed Slice with noise' png) DashboardSend(Meth)

  19. BatchMake and Slicer • BatchMake distributed with Slicer • Some modules can be run on a collection of data- EMSegment- GaussianBlur • Generic way to run moduleson a collection • Support for XNat

  20. GridWizard • Open-Source • Written in Java • BIRN and Na-Mic • Support for Sun Grid Engine and Condor • Shell-like scripts

  21. GridWizard Example bin/gwiz-run prog -t 1:3 prog -t 1 prog -t 2prog -t 3 bin/gwiz-run prog -i sftp://host.com/opt/mri/subjects/*.img prog -i sftp://host.com/opt/mri/subjects/s1.img prog -i sftp://host.com/opt/mri/subjects/s2.imgprog -i sftp://host.com/opt/mri/subjects/s3.img

  22. References • www.batchmake.org • www.insight-journal.org/batchmake • http://forums.gridsphere.org/index.shtml

  23. ClassAd Job ClassAd Match Condor Job Submission Workflow Submit Machine Central Manager Execute Machine 1 Collector Master 3 Master 2 4 Scheduler Negociator 5 Starter

More Related