Savvas Petrou EPCC, The University of Edinburgh SPRINT SPRINT A Simple Parallel R INTerface.

Slides:



Advertisements
Similar presentations
Systems analysis of innate immune mechanisms in infection – a role for HPC Peter Ghazal.
Advertisements

Data Structures Static and Dynamic.
College of Information Technology & Design
Analysis of Algorithms CS 477/677
Optimizing Compilers for Modern Architectures Allen and Kennedy, Chapter 13 Compiling Array Assignments.
Factoring of Large Numbers using Number Field Sieve Matrix Step Chandana Anand, Arman Gungor, and Kimberly A. Thomas ECE 646 Fall 2006.
Chapter 1: An Overview of Computers and Programming Languages
Parallel Algorithms Lecture Notes. Motivation Programs face two perennial problems:: –Time: Run faster in solving a problem Example: speed up time needed.
Uniform Distributions on Integer Matrices. The Problem  How many ways can I fill in a matrix with specified row and column sums? ???2 ???2 ???3 223.
Maths for Computer Graphics
Data Analytics and Dynamic Languages Lee E. Edlefsen, Ph.D. VP of Engineering 1.
Introduction to MATLAB Northeastern University: College of Computer and Information Science Co-op Preparation University (CPU) 10/22/2003.
CEG 221 Lesson 4: Algorithm Development I Mr. David Lippa.
ViaLogy Lien Chung Jim Breaux, Ph.D. SoCalBSI 2004 “ Improvements to Microarray Analytical Methods and Development of Differential Expression Toolkit ”
Significance Tests P-values and Q-values. Outline Statistical significance in multiple testing Statistical significance in multiple testing Empirical.
1 Random Forest in Distributed R Arash Fard Vishrut Gupta.
Introduction to R: The Basics Rosales de Veliz L., David S.L., McElhiney D., Price E., & Brooks G. Contributions from Ragan. M., Terzi. F., & Smith. E.
1 Chapter 2 Matrices Matrices provide an orderly way of arranging values or functions to enhance the analysis of systems in a systematic manner. Their.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 1: An Overview of Computers and Programming Languages Updated by: Dr\Ali-Alnajjar.
Simple Load Balancing CS550 Operating Systems. Announcements Project will be posted – TBA This project will use the client-server model and will require.
© 2004 The MathWorks, Inc. 1 MATLAB for C/C++ Programmers Support your C/C++ development using MATLAB’s prebuilt graphics functions and trusted numerics.
Exercise problems for students taking the Programming Parallel Computers course. Janusz Kowalik Piotr Arlukowicz Tadeusz Puzniakowski Informatics Institute.
SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 12 CS2110 – Fall 2009.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
March 3rd, 2006 Chen Peng, Lilly System Biology1 Cluster and SGE.
1 Cactus in a nutshell... n Cactus facilitates parallel code design, it enables platform independent computations and encourages collaborative code development.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
What does C store? >>A = [1 2 3] >>B = [1 1] >>[C,D]=meshgrid(A,B) c) a) d) b)
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
ITC Research Computing Support Using Matlab Effectively By: Ed Hall Research Computing Support Center Phone: Φ Fax:
Parallel & Distributed Systems and Algorithms for Inference of Large Phylogenetic Trees with Maximum Likelihood Alexandros Stamatakis LRR TU München Contact:
Parallelization of likelihood functions for data analysis Alfio Lazzaro CERN openlab Forum on Concurrent Programming Models and Frameworks.
High Performance Computing on an IBM Cell Processor Team May08-24: Kyle Byerly Matt Rohlf Bryan Venteicher Shannon McCormick Faculty Adviser: Team Website:
Class 23, 2001 CBCl/AI MIT Bioinformatics Applications and Feature Selection for SVMs S. Mukherjee.
Lecture 26: Reusable Methods: Enviable Sloth. Creating Function M-files User defined functions are stored as M- files To use them, they must be in the.
CUDA Basics. Overview What is CUDA? Data Parallelism Host-Device model Thread execution Matrix-multiplication.
“WISE” Simulation of optical imperfections in LHC P. Hagen AT/MCS Acknowledgements: Colleagues in AT/MAS, AT/MEL, AT/MTM, AB/ABP CERN, October 2006.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
1 ECE 102 Engineering Computation Chapter 3 Math Review 3: Cramer’s Rule Dr. Herbert G. Mayer, PSU Status 10/11/2015 For use at CCUT Fall 2015.
1 ECE 221 Electric Circuit Analysis I Chapter 6 Cramer’s Rule Herbert G. Mayer, PSU Status 11/14/2014 For use at Changchun University of Technology CCUT.
Finishing up Chapter 5. Will this code enter the if statement? G=[30,55,10] if G
4.1 An Introduction to Matrices Katie Montella Mod. 6 5/25/07.
Blog: R YOU READY FOR.
Blog: R YOU READY FOR.
Matrix Multiplication in Hadoop
Blog: R YOU READY FOR.
Spectral Algorithms for Learning HMMs and Tree HMMs for Epigenetics Data Kevin C. Chen Rutgers University joint work with Jimin Song (Rutgers/Palentir),
Big Data is a Big Deal!.
DCS Status and Amanda News
Chapter 1: An Overview of Computers and Programming Languages
Fig. 2. In adaptive permutation, the pool of candidate SNPs decreases as p-value estimates become more precise. Running time increases with the number.
Execution Planning for Success
Bridging the Data Science and SQL Divide for Practitioners
Chapter 1: An Overview of Computers and Programming Languages
High Performance Computing on an IBM Cell Processor --- Bioinformatics
Genomic Data Clustering on FPGAs for Compression
How to Fix Outlook Error 0x800cce05? For Assistance
script/
Populating a Data Warehouse
Populating a Data Warehouse
Chapter 1: An Overview of Computers and Programming Languages
Parallelization of Sparse Coding & Dictionary Learning
Chapter 1: An Overview of Computers and Programming Languages
Searching, Sorting, and Asymptotic Complexity
Searching, Sorting, and Asymptotic Complexity
Computational Thinking
Server & Tools Business
Alex Bolsoy, Jonathan Suggs, Casey Wenner
Run time performance for all benchmarked software.
Presentation transcript:

Savvas Petrou EPCC, The University of Edinburgh SPRINT SPRINT A Simple Parallel R INTerface

March 2010SPRINT2 Overview What is SPRINT How is SPRINT different from other parallel R packages Biological example: Post-genomic data analysis Code comparison

March 2010SPRINT3 SPRINT Simple Parallel R INTerface ( ) “SPRINT: A new parallel framework for R”, J Hill et al, BMC Bioinformatics, Dec SPRINT

March 2010SPRINT4 Issues of existing parallel R packages Difficult to program Require scientist to also be a parallel programmer! Require substantial changes to existing scripts Can’t be used to solve some problems No data dependencies allowed

March 2010SPRINT5 Data: Data: A matrix of expression measurements with genes in rows and samples in columns Biological example

March 2010SPRINT6 Biological example Problem Problem Using all or many genes will either crash or be very slow (R memory allocation limits, number of computations) Input array dimensions and size Final array size in memory 11,000 x MB MB 0.9 GB (0.9 GB) 22,000 x MB 3, MB 3.6 GB (3.6 GB) 35,000 x MB 9,346 MB 9.12 GB (9.12 GB) 45,000 x MB 15, MB GB (15.08 GB) Data limitations (correlations) Input array dimensions and permutation count Estimated total run time 36,612 x 76500,000 20,750 seconds 6 hours 36,612 x 761,000,000 41,500 seconds 12 hours 73,224 x 76500,000 35,000 seconds 10 hours 73,224 x 761,000,000 70,000 seconds 20 hours Work load limitations (permutations)

March 2010SPRINT7 Workarounds and solution Workaround: Workaround: –Remove as many genes as possible before applying algorithm. This can be an arbitrary process and remove relevant data. –Perform multiple executions and post-process the data. Can become very painful procedure. Solution: expert Solution: Parallelisation of R code can be made accessible to bioinformaticians/statisticians. A library with expert coded solutions once, then easy end-point use by all. SPRINT R Biological Results HPC Big Post Genomic Data

March 2010SPRINT8 Benchmarks (256 processes) Input array dimensions and size Final array size in memory Total run time (in serial) (in seconds) Total run time (in parallel) (in seconds) 11,000 x MB MB 0.9 GB (0.9 GB) ,000 x MB 3, MB 3.6 GB (3.6 GB) “Error: cannot allocate vector of size 3.6 Gb” ,000 x MB 9,346 MB 9.12 GB (9.12 GB)CRASHED ,000 x MB 15, MB GB (15.08 GB)CRASHED42.18 Data limitations (correlations) Input array dimensions and permutation count Estimated total run time (in serial) Total run time (in parallel) (in seconds) 36,612 x 76500,000 20,750 seconds 6 hours ,612 x 761,000,000 41,500 seconds 12 hours ,224 x 76500,000 35,000 seconds 10 hours ,224 x 761,000,000 70,000 seconds 20 hours Work load limitations (permutations)

March 2010SPRINT9 edata <- read.table("largedata.dat") pearsonpairwise <- cor(edata) write.table(pearsonpairwise, "Correlations.txt") quit(save="no") library("sprint") edata <- read.table("largedata.dat") ff_handle <- pcor(edata) pterminate() quit(save="no") Correlation code comparison

March 2010SPRINT10 data(golub) smallgd <- golub[1:100,] classlabel <- golub.cl resT <- mt.maxT(smallgd, classlabel, test="t", side="abs") quit(save="no") library("sprint") data(golub) smallgd <- golub[1:100,] classlabel <- golub.cl resT <- pmaxT(smallgd, classlabel, test="t", side="abs") pterminate() quit(save="no") Permutation testing code comparison

March 2010SPRINT11 Website: Website: Source code can be downloaded from website Source code can be downloaded from website Soon also in the CRAN repository Soon also in the CRAN repository Mailing list: Mailing list: Contact Contact SPRINT

March 2010SPRINT12 Acknowledgements DPM Team: Peter Ghazal Thorsten Forster Muriel Mewissen EPCC Team: Terry Sloan Michal Piotrowski Savvas Petrou Bartek Dobrzelecki Jon Hill Florian Scharinger Wellcome TrustNAG dCSE Support This work is supported by the Wellcome Trust and the NAG dCSE Support service. Numerical Algorithms Group

March 2010SPRINT13 R –-vanilla --slave –f maxT_serial.R mpiexec –n 2 R –-vanilla --slave –f maxT_parallel.R SPRINT - Demo Executing the same code in serial and in parallel.