Approaching Big Data technologies to scientific applications

Similar documents
Perldoop: Efficient Execution of Perl Scripts on Hadoop Clusters

Outline. High Performance Computing (HPC) Big Data meets HPC. Case Studies: Some facts about Big Data Technologies HPC and Big Data converging

Hadoop. Bioinformatics Big Data

BIG DATA APPLICATIONS

The Performance Characteristics of MapReduce Applications on Scalable Clusters

Big Data Analytics. Lucas Rego Drumond

Parallel Programming Map-Reduce. Needless to Say, We Need Machine Learning for Big Data

Hadoop MapReduce and Spark. Giorgio Pedrazzi, CINECA-SCAI School of Data Analytics and Visualisation Milan, 10/06/2015

Hadoop. Scalable Distributed Computing. Claire Jaja, Julian Chan October 8, 2013

Lambda Architecture. CSCI 5828: Foundations of Software Engineering Lecture 29 12/09/2014

HPCHadoop: MapReduce on Cray X-series

Hadoop Parallel Data Processing

Hadoop and Eclipse. Eclipse Hawaii User s Group May 26th, Seth Ladd

Getting to know Apache Hadoop

Hadoop and Map-reduce computing

Adapting scientific computing problems to cloud computing frameworks Ph.D. Thesis. Pelle Jakovits

Challenges for Data Driven Systems

The MapReduce Framework

The Flink Big Data Analytics Platform. Marton Balassi, Gyula Fora" {mbalassi,

Scaling Out With Apache Spark. DTL Meeting Slides based on

BIG DATA, MAPREDUCE & HADOOP

CSE-E5430 Scalable Cloud Computing. Lecture 4

SeqPig: simple and scalable scripting for large sequencing data sets in Hadoop

Data-Intensive Computing with Map-Reduce and Hadoop

MapReduce and Hadoop. Aaron Birkland Cornell Center for Advanced Computing. January 2012

Developing Scalable Smart Grid Infrastructure to Enable Secure Transmission System Control

Hadoop-BAM and SeqPig

Unified Big Data Analytics Pipeline. 连 城

Log Mining Based on Hadoop s Map and Reduce Technique

Convex Optimization for Big Data: Lecture 2: Frameworks for Big Data Analytics

Lecture 10 - Functional programming: Hadoop and MapReduce

Hadoop2, Spark Big Data, real time, machine learning & use cases. Cédric Carbone Twitter

Twister4Azure: Data Analytics in the Cloud

Volume 3, Issue 6, June 2015 International Journal of Advance Research in Computer Science and Management Studies

Map Reduce / Hadoop / HDFS

Parallel Compression and Decompression of DNA Sequence Reads in FASTQ Format

Introduction to Hadoop

Enhancing Dataset Processing in Hadoop YARN Performance for Big Data Applications

Spark and the Big Data Library

HPC ABDS: The Case for an Integrating Apache Big Data Stack

Enterprise Data Storage and Analysis on Tim Barr

Architectures for massive data management

Introduction to Big Data! with Apache Spark" UC#BERKELEY#

Processing NGS Data with Hadoop-BAM and SeqPig

Introduction to Hadoop

Hadoop. Sunday, November 25, 12

Hadoop/MapReduce. Object-oriented framework presentation CSCI 5448 Casey McTaggart

Big Data and Apache Hadoop s MapReduce

Hadoop. MPDL-Frühstück 9. Dezember 2013 MPDL INTERN

Spark in Action. Fast Big Data Analytics using Scala. Matei Zaharia. project.org. University of California, Berkeley UC BERKELEY

Big Data Storage, Management and challenges. Ahmed Ali-Eldin

CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop)

Cloud Computing. Chapter Hadoop

Hadoop Streaming coreservlets.com and Dima May coreservlets.com and Dima May

MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example

Platforms and Algorithms for Big Data Analytics Chandan K. Reddy Department of Computer Science Wayne State University

GraySort and MinuteSort at Yahoo on Hadoop 0.23

Big Data Analytics Hadoop and Spark

HDFS. Hadoop Distributed File System

Introduction to MapReduce and Hadoop

Apache Flink Next-gen data analysis. Kostas

Architectures for massive data management

Big Data With Hadoop

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Surfing the Data Tsunami: A New Paradigm for Big Data Processing and Analytics

Large scale processing using Hadoop. Ján Vaňo

Comparative analysis of mapreduce job by keeping data constant and varying cluster size technique

A Cost-Benefit Analysis of Indexing Big Data with Map-Reduce

Parallel Computing. Benson Muite. benson.

Processing of massive data: MapReduce. 2. Hadoop. New Trends In Distributed Systems MSc Software and Systems

Hadoop at Yahoo! Owen O Malley Yahoo!, Grid Team owen@yahoo-inc.com

Conjugating data mood and tenses: Simple past, infinite present, fast continuous, simpler imperative, conditional future perfect

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Data Algorithms. Mahmoud Parsian. Tokyo O'REILLY. Beijing. Boston Farnham Sebastopol

Spark: Cluster Computing with Working Sets

Introduc)on to Map- Reduce. Vincent Leroy

Introduction to Spark

Introduc)on to the MapReduce Paradigm and Apache Hadoop. Sriram Krishnan

A bit about Hadoop. Luca Pireddu. March 9, CRS4Distributed Computing Group. (CRS4) Luca Pireddu March 9, / 18

Brave New World: Hadoop vs. Spark

Introduction to Hadoop

Big Data Frameworks: Scala and Spark Tutorial

Click Stream Data Analysis Using Hadoop

Efficient Parallel Execution of Sequence Similarity Analysis Via Dynamic Load Balancing

Hybrid Software Architectures for Big

Federated Big Data for resource aggregation and load balancing with DIRAC

CS555: Distributed Systems [Fall 2015] Dept. Of Computer Science, Colorado State University

Hadoopizer : a cloud environment for bioinformatics data analysis

Xiaoming Gao Hui Li Thilina Gunarathne

A Tutorial in Genetic Sequence Classification Tools and Techniques

On a Hadoop-based Analytics Service System

Integrating Big Data into the Computing Curricula

Spark ΕΡΓΑΣΤΗΡΙΟ 10. Prepared by George Nikolaides 4/19/2015 1

Scalable Cloud Computing Solutions for Next Generation Sequencing Data

Introduc8on to Apache Spark

Machine- Learning Summer School

MapReduce for Data Intensive Scientific Analyses

Big Data Rethink Algos and Architecture. Scott Marsh Manager R&D Personal Lines Auto Pricing

Big Data Analytics* Outline. Issues. Big Data

Big Data Management and NoSQL Databases

Transcription:

Approaching Big Data technologies to scientific applications Doctoral Meeting José Manuel Abuín Mosquera Centro Singular de Investigación en Tecnoloxías da Información Universidade de Santiago de Compostela BigData4Science citius.usc.es

Contents 1 Context and Motivation 2 Scientific applications Sequence alignment in Genomics Natural Language Processing (NLP) Iterative methods 3 Conclusions and Future Work BigData4Science

Contents 1 Context and Motivation 2 Scientific applications Sequence alignment in Genomics Natural Language Processing (NLP) Iterative methods 3 Conclusions and Future Work BigData4Science

What is Big Data? It is estimated that each day are created around 2.5 quintillion bytes of data (2.5 Exabytes). Companies want to process,understand and obtain conclusions from all these data. A few years ago, the MapReduce programming model was introduced. It is a parallel model which uses a distributed file system. BigData4Science 1/46

The HDFS HDFS stands for Hadoop Distributed File System. It is a distributed system that stores a block in one or several nodes with a given replication factor. Figure: HDFS Distribution. (http://www.cloudera.com) BigData4Science 2/46

The MapReduce programming model HDFS Maps Reducers Block 1 Map 1 Input Data Block 2 Block 3 Block 4 Map 2 Map 3 Map 4 Reducer 1 Reducer 2 Final Result Block N Map N Figure: MapReduce model. BigData4Science 3/46

Apache Hadoop One of the most famous Big Data frameworks. Based on Google s MapReduce programming model. Implemented in Java, but its core is in C language. Problem: It support iterative processes, but the user has to write intermediary results to disk, with the consequent lack of performance. BigData4Science 4/46

Apache Spark Open-source cluster computing framework. It provides in-memory primitives, by loading data into a cluster s memory and query it repeatedly, Allow us to chain several maps, reducers and more operations. It can works together with Hadoop in the same cluster using YARN. 100 faster than Hadoop on memory and 10 faster on disk. Resilient Distributed Dataset (RDD). Fault-tolerant collection of elements that can be operated on in parallel. In memory, in disk or both. BigData4Science 5/46

Motivation Is it possible to use this paradigm for classic HPC scientific computations?. Which are the scientific fields more suitable to this paradigm?. Is this paradigm better than the classic HPC approach?. BigData4Science 6/46

Contents 1 Context and Motivation 2 Scientific applications Sequence alignment in Genomics Natural Language Processing (NLP) Iterative methods 3 Conclusions and Future Work BigData4Science

Sequence alignment in Genomics Main research efforts in bioinformatics Sequence alignment. Gene prediction. Structural alignment of proteins. Alignment Comparison of two or more nucleotide or protein sequences to determine the degree of similarity. Commonly used to deduct functional or evolutionary relationships between genes and proteins. BigData4Science 7/46

DNA Index Human DNA Index We need and index to align against our reads. There are several formats, but the most common is FASTA. The human_g1k_v37 index has 3 GB of size in this format (2009). ACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA ACCCTAACCCTAACCCTAACCCTAACCCAACCCTAACCCTAACCCTAACCCTAACCCTAA CCCTAACCCCTAACCCTAACCCTAACCCTAACCCTAACCTAACCCTAACCCTAACCCTAA CCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAAACCCTAAACCC Figure: Human DNA index example. BigData4Science 8/46

Ultra Sequentiation Formal definition Process of determining the precise order of nucleotides within a DNA molecule.... and this means? 1. Tissue sample. 2. Put the sample into an ultra sequentiation machine. 3. You get reads from this sample and store them into your computer. BigData4Science 9/46

How a sample read looks like? Human DNA sample One of the most common formats is the FASTQ. In these case we can reach TeraBytes of data. Each four lines is a record, and the second line in a record is the read. @SRR062634.1 HWI-EAS110_103327062:6:1:1092:8469/1 GGGTTTTCCTGAAAAAGGGATTCAAGAAAGAAAACTTACATGAGGTGATTGTTTAATGTTGCTACCAAAGAAGAGAGAGTTACCTGCCCATTCACTCAGG + @C'@9:BB:?DCCB5CC?5C=?5@CADC?BDB)B@?-A@=:=:@CC'C>5AA+*+2@@'-?>5-?C=@-??)'>>B?D@?*?A################# @SRR062634.2 HWI-EAS110_103327062:6:1:1107:21105/1 ACCGTGAGCAATCAGCTGCCATCAACGTGGAGGTAAGACTCTCCACCTGCAAAAACATTACAACTTGCTGAAGGCTGAGATACTTGTTCGCACATTTTTA + FDEFF?DFEFE?BEEEEED=DB:DCEAEEB,CC=@B=5?B?CC5C?B+A??=>:CC<9-B2=@>-?:-<A@@A?9>*0<:'0%6,>:9&-:>?:>==B?? Figure: Human DNA sample read. BigData4Science 10/46

What that letters means? Alphabets DNA = {A, C, G, T} RNA = {A, C, G, U} PRO = {A, C, D, E, F, G, H, I, L, K, M, N, P, Q, R, S, T, V, W, Y} DNA case, nitrogen bases A - Adenine C - Cytosine G - Guanine T - Thymine BigData4Science 11/46

How we perform the alignment Burrows - Wheeler Aligner (BWA). Open Source. Available on GitHub. Implemented in C language. One of the widely accepted software to perform the alignment in the computational genomics community. It implements three algorithms: BWA-backtrack BWA-SW BWA-MEM BigData4Science 12/46

How we perform the alignment We use BWA to perform the alignment. But we have to integrate it into a Big Data environment. For this reason we developed the BigBWA tool (https://github.com/citiususc/bigbwa). BigBWA - I 1. We don t need to modify the BWA code, we create a wrapper which calls BWA functions from Java by using JNI. 2. We need to make the index available to all the computing nodes. 3. We distribute the input data (FASTQ reads) across our maps using HDFS. BigData4Science 13/46

How we perform the alignment BigBWA - II 4. Each map is executed in one core from our cluster. 5. In this way, we parallelize the execution of BWA across the number of cores/maps. 6. In the reduce phase we put all the outputs together in one file (this is optional). BigData4Science 14/46

How we perform the alignment Input HDFS Map phase Output HDFS Map - 0 Input HDFS Split - 0 (FASTQ) Map phase Map - 0 JNI libbwa.so Genome Index Reduce phase Output HDFS Split - 0 (FASTQ) JNI libbwa.so Genome Index Final output - 0 Map - 1 Split - 1 (FASTQ) Map - 1 JNI libbwa.so Genome Index Split - 1 (FASTQ) JNI libbwa.so Genome Index Final output - 1 Reduce - 0 Final output Split - 2 (FASTQ) Map - 2 JNI libbwa.so Genome Index Split - 2 (FASTQ) Map - 2 JNI libbwa.so Final output - 2 Map - N Genome Index Split - N (FASTQ) JNI libbwa.so Genome Index Map - N Split - N (FASTQ) JNI libbwa.so Final output - N Figure: Model with reducer Genome Index Figure: Model without reducer BigData4Science 15/46

Test cases Comparison against: SEAL (BWA-backtrack) 1. pbwa (BWA-backtrack) 2. BWA version with threads (BWA-MEM). Execution time and speed up. Tag Name Number of pairs bp Size D1 NA12750/ERR000589 12 10 6 51 3.9 GB D2 HG00096/SRR062634 24.1 10 6 100 13.4 GB D3 150140/SRR642648 98.8 10 6 100 54.7 GB Table: Main characteristics of the input datasets from 1000 Genomes. 1 L. Pireddu, S. Leo, and G. Zanetti, SEAL: a distributed short read mapping and duplicate removal tool, Bioinformatics, vol. 27, no. 15, pp. 2159 2160, 2011 2 D. Peters, X. Luo, K. Qiu, and P. Liang, Speeding up large-scale next generation sequencing data analysis with pbwa, Journal of Applied Bioinformatics & Computational Biology, vol. 1, no. 1, pp. 1 6, 2012 BigData4Science 16/46

Test environment Hardware platform characteristics Hadoop cluster in Amazon EC2. 4 computing nodes. 16 cores per node (Intel Xeon E5-2670 at 2.5GHz CPUs). Hadoop version is 2.6.0. BigData4Science 17/46

Results - Execution time BWA-backtrack Sequential time for D1 is 148.5 minutes and 556.9 for D2. With 64 cores, for D1 4.5 minutes, and for D2, 15.3. The speed-up against SEAL has an improvement of 1.27 and against pbwa of 1.13. BWA-MEM Sequential times for D1, D2 and D3 are respectively 106.6, 258.0 and 3208.6 minutes. With BigBWA and 64 cores 3.0, 7.2 and 87.2 minutes. BWA version with threads is a shared memory approach, we can only measure up until 16 cores. BigData4Science 18/46

Results - Speed up 30 SEAL pbwa BigBWA 28 30.8 34.7 30 BWA BigBWA (hybrid) BigBWA 24.6 29.6 36 Speedup 15 10 5 2.8 3.5 3.6 5.6 5.9 6.5 7.4 8.7 9.7 14.5 16.5 17.8 20 10 3.9 3.7 3.7 7.6 7.2 7 9.9 11.3 13.3 16.7 4 8 16 32 64 No. of cores 4 8 16 32 64 No. of cores Figure: Average speedups for BWA-backtrack (left) and BWA-MEM (right) algorithms. BigData4Science 19/46

Computational Genomics conclusions Conclusions Use of BWA to perform the alignment. We create an publish BigBWA 3 Improvement respect state of the art solutions (BWA-backtrack). The only tool that offers a distributed memory approach for BWA-MEM. Future work Develop a version to run in Spark. Create a data flow that complete the process by comparing different alignments. 3 J. M. Abuín, J. C. Pichel, T. F. Pena, and J. Amigo, BigBWA: Approaching the Burrows Wheeler aligner to Big Data technologies, Bioinformatics, 2015 BigData4Science 20/46

Natural Language Processing (NLP) Motivation Each day are created around 2.5 quintillion bytes of data (2.5 Exabytes). Weather sensors, social networks, digital images, etc... In many cases, this information is not structured. BigData4Science 21/46

Natural Language Processing (NLP) Definition Field of computer science, artificial intelligence, and computational linguistics concerned with the interactions between computers and human (natural) languages. Why? NLP is considered as one of the most appropriate technologies to structure and organize textual information on the Internet, in constant and exponential growth. BigData4Science 22/46

A Big Data approach for NLP Problems Most of NLP programs are written in Perl. This is due to its unique ability to process text using regular expressions. Researchers from this area have found in Hadoop Streaming a way to easily analyze big volumes (Gigabytes or even Terabytes) of textual information. BigData4Science 23/46

Hadoop Streaming Utility included within Hadoop. It allows to run codes written in any language with Hadoop. Restriction: codes must read from stdin and write to stdout. Important degradations in the performance have been observed by using this tool 4. Anyway, it is a useful tool if you do not want to rewrite your programs and still run them in a Big Data environment. 4 M. Ding, L. Zheng, Y. Lu, L. Li, S. Guo, and M. Guo, More convenient more overhead: the performance evaluation of Hadoop streaming, in ACM Symp. on Research in Applied Computation, 2011, pp. 307 313 BigData4Science 24/46

How Hadoop Streaming works? The child JVM creates an external process to launch the user code. This external process receives as input the key - value pairs from the input. As a result, the child JVM receives key - value pairs from the external process. All these communications between external process and JVM, are made through pipes. Figure: Relationship of the Streaming executable and its child. This works for maps and reduces. T. White, Hadoop: The Definitive Guide, 3rd ed. O Reilly Media, Inc., 2012 BigData4Science 25/46

Our approach Perl is widely used for its unrivaled ability to use regular expressions. Execute Perl codes in Hadoop... and we want to do it with a really good performance and scalability. In consequence, we try to avoid the use of Hadoop Streaming. BigData4Science 26/46

What we intend to do (II) Translate MapReduce Perl programs into MapReduce Java programs. This is a hard and tedious job for big applications. Solution: build a tool that automatically translates MapReduce Perl codes into Java MapReduce programs. Warning: it will not translate any existing Perl program into Java!! BigData4Science 27/46

The Perldoop Tool Characteristics Perldoop (https://github.com/citiususc/perldoop) is a system based on Tags and Java Templates. Tags in the Perl code are used to identify the piece of code to translate, the type of the variables and other useful parameters in the translation process. Templates are small pieces of Java code with the imports required to run the program, the class name and builder, map and reducer definitions, etc... BigData4Science 28/46

Templates and tags system Java File Template Perl File to Translate Resulting Java File Class declaration Perl code Class declaration //<java><start> //<java><end> #<perl><start> Perl code to translate #<perl><end> //<java><start> Java code translated from Perl //<java><end> Auxiliary functions Perl code Auxiliary functions Figure: Templates and tags system. BigData4Science 29/46

The tool Perldoop was developed using Python. It takes as input MapReduce Perl codes and produces the equivalent Java codes. The user needs few knowledge about Java language. It is important to put the same name to variables in Java templates and in the Perl code. The user has to follow 6 implementation rules to code in Perl: 1. Restrict the access to array positions not previously allocated. 2. Ordered conditional blocks. 3. Perform string concatenations with the. operator. 4. Declare and initialize the variables with the corresponding label. 5. Use a different name for each variable. 6. Not to use integer variables as boolean in Perl. BigData4Science 30/46

Code example. WordCount Map #!/usr/bin/perl -w #<perl><start> my $line; my @words; my $key; my $valuenum = "1"; my $val; #<var><string> #<array><string> #<var><string> #<var><string> #<var><string> while ($line = <STDIN>) { #<map> chomp ($line); @words = split (" ",$line); foreach my $w (@words) { #<var><string> $key = $w."\t"; $val = $valuenum."\n"; print $key.$val; } } #<perl><end> import java.io.ioexception; import org.apache.hadoop.io.text; import org.apache.hadoop.mapreduce.mapper; public static class WordCountMap extends Mapper<Object, Text, Text, Text>{ @Override public void map(object incomingkey, Text value, Context context) throws IOException, InterruptedException { try{ //<java><start> String line; String[] words; String key; String valuenum = "1"; String val; line = value.tostring(); line = line.trim(); words = line.split(" "); for (String w : words) { key = w+; val = valuenum; context.write(new Text(key),new Text(val)); } //<java><end> } catch(exception e){ System.out.println(e.toString()); } } } BigData4Science 31/46

Code example. WordCount Reducer (I) #!/usr/bin/perl -w #<perl><start> my $count = 0; #<var><integer> my $value; #<var><integer> my $newkey; #<var><string> my $oldkey; #<var><string><null> my $line; #<var><string> my @keyvalue; #<var><string> while ($line = <STDIN>) { #<reduce> chomp ($line); $keyvalue = split ("\t",$line); $newkey = $keyvalue[0]; $value = $keyvalue[1]; if (!(defined($oldkey))) { $oldkey = $newkey; $count = $value; } else { if ($oldkey eq $newkey) { $count = $count + $value; } else { my $returnkey = $oldkey."\t"; #<var><string> my $returnvalue = $count."\n"; #<var><string> print $returnkey.$returnvalue; $oldkey = $newkey; $count = $value; } } } my $returnkey = $oldkey."\t"; #<var><string> my $returnvalue = $count."\n"; #<var><string> print $returnkey.$returnvalue; #<perl><end> BigData4Science 32/46

Code example. WordCount Reducer (II) import java.io.ioexception; import org.apache.hadoop.io.text; import org.apache.hadoop.mapreduce.reducer ; public static class WordCountReducer extends Reducer<Text, Text, Text, Text> { int count = 0; @Override public void reduce(text key, Iterable< Text> values, Context context) throws IOException, InterruptedException { //<java><start> int value; String newkey; String oldkey = null; String line; String keyvalue; for (Text val : values) { newkey = key.tostring(); value = Integer.parseInt(val. tostring()); if (!(oldkey!= null)) { oldkey = newkey; count = value; } else{ if (oldkey.equals(newkey) ) { count = count + value; } else{ String returnkey = oldkey; String returnvalue = String. valueof(count); context.write(new Text(returnKey ), new Text(returnValue)); oldkey = newkey; count = value; } } } String returnkey = oldkey; String returnvalue = String.valueOf( count); context.write(new Text(returnKey),new Text(returnValue)); //<java><end> } } BigData4Science 33/46

Test cases Tested using several NLP (Natural Language Processing) modules: 1. Named Entity Recognition (NER): It consists of identifying as a single unit (or token) those words or chains of words denoting an entity, e.g. New York, University of San Diego, Herbert von Karajan, etc... 2. PoS-Tagging: It assigns each token of the input text a single PoS tag provided with morphological information e.g. singular and masculine adjective, past participle verb, etc... 3. Named Entity Classification (NEC): It is the process of classifying entities by means of classes such as People, Organizations, Locations, or Miscellaneous. Hardware platform characteristics: Virtual cluster installed at the Galicia Supercomputing Center (CESGA), with 64 nodes. Intel Xeon E5520 processor. The Hadoop version is the 1.1.2, while the Java and Perl versions are 1.7.0 and 5.10.1 respectively. The input data is plain text from Wikipedia (2.1 GB). BigData4Science 34/46

Execution times and speed up Execution times The sequential execution time for the NEC module (the most time consuming one) is in Perl 457.4 hours. In Java is 84.2 hours. Using 64 cores the execution time is, with Perl and Hadoop Streaming, 15.5 hours. With Perldoop and Hadoop we have an execution time of 1.5 hours. Speed up The speed up in the case of 64 cores is of 29.4 in the case of Hadoop Streaming and 57.9 in the case of Perldoop and Hadoop. This means that, with 64 cores, we almost reach the perfect speed up of 64. BigData4Science 35/46

Performance improvement NER Tagger NEC 12 10.9 12.1 11.1 11.3 11.1 10.7 10 Speedup 8 6 5.4 5.4 4 2.7 3 3 2 1.6 0 1 17 32 64 Number of nodes Figure: Performance improvement of the Java modules generated by Perldoop using Hadoop with respect to the use of Perl and Hadoop Streaming. BigData4Science 36/46

NLP conclusions Conclusions 1. Perl is widely used in several areas (NLP, Bioinformatics,... ) for its unrivaled ability to use regular expressions. 2. Perldoop 5 : Automatically translate MapReduce Perl codes into Hadoop-ready Java codes. 3. Tool tested with some NLP modules, but it is a general purpose tool for MapReduce programs. 4. New Java modules clearly outperforms the Perl ones, reaching speedups up to 12. 5 J. M. Abuín, J. C. Pichel, T. F. Pena, P. Gamallo, and M. García, Perldoop: Efficient Execution of Perl Scripts on Hadoop Clusters, in IEEE International Conference on Big Data, 2014, pp. 766 771 BigData4Science 37/46

NLP conclusions Future Work 1. Try to avoid the use of Java Templates. 2. Extend the tool to translate MapReduce Perl codes into Spark ready codes. 3. Test the tool with new applications. 4. Try to improve this model by defining a formal grammar for the translation process. BigData4Science 38/46

Iterative methods Iterative methods Numeric methods are the basis of most scientific simulation software. Solve linear systems with thousands of equations and unknowns. They require a big quantity of computation time. Classic HPC solutions use MPI, OpenMP, CUDA,... have a good performance, but lack of fault tolerance. BigData4Science 39/46

Big Data solution Big Data equation systems solving Hadoop can perform iterative processes, but with the consequent loss of performance because it has to write and read intermediary results to/from disk. Apache Spark can handle iterative processes in a mos efficient way thanks to its in-memory approach and the use of RDDs. Implementation of the conjugate gradient method and comparison to a C++ implementation with MPI. BigData4Science 40/46

Input matrices Tag Dimensions Size D1 20000 20000 3.35 GB D2 30016 30016 7.55 GB D3 40000 40000 13.41 GB D4 50016 50016 20.96 GB Table: Main characteristics of the input square matrices. Figure: Conjugate gradient pseudocode. BigData4Science 41/46

Execution times and speed up Execution times The sequential time is similar for the C++ and Java cases with D4, 228 minutes. Using 32 cores, the Spark version has an execution time of 43.19 minutes, and the C++ with MPI 27.58 minutes. Generally, execution times with MPI are between 1.5 and 1.8 better than the ones with Spark. Speed up For the case of D4 with 32 cores we reach a speed up of 8.33 with MPI and 5.26 with Spark. Speed ups are also between 1.5 and 1.8 better in MPI than the ones with Spark. BigData4Science 42/46

Iterative methods conclusions Conclusions 1. It is possible to use Big Data infrastructures to solve this kind of methods. 2. The performance is not as good as the one obtained with classic HPC methods. 3. But we have the advantage of the fault tolerance. Future work 1. Develop other iterative methods that can fit into this paradigm. 2. Try to integrate this methods into the Spark MLlib linear algebra package. BigData4Science 43/46

Contents 1 Context and Motivation 2 Scientific applications Sequence alignment in Genomics Natural Language Processing (NLP) Iterative methods 3 Conclusions and Future Work BigData4Science

Final conclusions Conclusions It is possible to use Big Data for classic HPC scientific applications. The performance obtained can outperform MPI in some cases (genomics alignment) but it is more complicated in others (iterative methods). Hadoop and Spark give us fault tolerance. This can be useful in programs that take a very long time to obtain a final result. Future work Apply Big Data technologies to other scientific applications. Improve all the software we developed for our current lines of work. Use the HDFS native library libhdfs.so to take advantage of use the HDFS with MPI in all these applications. BigData4Science 44/46

References I L. Pireddu, S. Leo, and G. Zanetti, SEAL: a distributed short read mapping and duplicate removal tool, Bioinformatics, vol. 27, no. 15, pp. 2159 2160, 2011. D. Peters, X. Luo, K. Qiu, and P. Liang, Speeding up large-scale next generation sequencing data analysis with pbwa, Journal of Applied Bioinformatics & Computational Biology, vol. 1, no. 1, pp. 1 6, 2012. J. M. Abuín, J. C. Pichel, T. F. Pena, and J. Amigo, BigBWA: Approaching the Burrows Wheeler aligner to Big Data technologies, Bioinformatics, 2015. M. Ding, L. Zheng, Y. Lu, L. Li, S. Guo, and M. Guo, More convenient more overhead: the performance evaluation of Hadoop streaming, in ACM Symp. on Research in Applied Computation, 2011, pp. 307 313. T. White, Hadoop: The Definitive Guide, 3rd ed. O Reilly Media, Inc., 2012. BigData4Science 45/46

References II J. M. Abuín, J. C. Pichel, T. F. Pena, P. Gamallo, and M. García, Perldoop: Efficient Execution of Perl Scripts on Hadoop Clusters, in IEEE International Conference on Big Data, 2014, pp. 766 771. BigData4Science 46/46

Thank you for your attention josemanuel.abuin@usc.es https://jmabuin.wordpress.com https://github.com/jmabuin BigData4Science