the ophidia stack a big data analy4cs framework for
play

The Ophidia stack: a big data analy4cs framework for - PowerPoint PPT Presentation

The Ophidia stack: a big data analy4cs framework for Virtual Research Environments Sandro Fiore , Giovanni Aloisio Exploi(ng the EGI Federated clouds - Paas


  1. The ¡Ophidia ¡stack: ¡a ¡big ¡data ¡analy4cs ¡ framework ¡for ¡Virtual ¡Research ¡ Environments ¡ Sandro Fiore , Giovanni Aloisio Exploi(ng ¡the ¡EGI ¡Federated ¡clouds ¡ � -­‑ ¡Paas ¡& ¡SaaS ¡workshop ¡ Advanced Scientific Computing Division ¡ Euro Mediterranean Center on Climate Change (CMCC) Bari, ¡Italy, ¡10-­‑13 ¡November ¡2015 ¡ On behalf of the Ophidia Team Ophidia ¡

  2. ¡ The Ophidia Project Ophidia is a research effort carried out at the Euro Mediterranean Centre on Climate Change (CMCC) to address “big data” challenges, issues and requirements for climate change data analytics (GEMINA grant from Italian Ministry of Education, Universities and Research) Ophidia http://ophidia.cmcc.it/ S. Fiore, A. D’Anca, C. Palazzo, I. Foster, D. N. Williams, G. Aloisio, “Ophidia: toward bigdata analytics for eScience”, ICCS2013 Conference , Procedia Elsevier, Barcelona, June 5-7, 2013

  3. Data analytics requirements and use cases � Requirements and needs focus on:  Time series analysis  Data subsetting  Model intercomparison  Multimodel means  Massive data reduction  Data transformation (through array-based primitives)  Param. Sweep experiments (same task applied on a set of data)  Climate change signal  Maps generation  Ensemble analysis  Data analytics worflow support But also…  Performance  re-usability  Extensibility  Interoperability with ESGF

  4. ESGF & the CMIP5 data archive �

  5. ¡ Ophidia Architecture Declarative language ¡ Front Standard interfaces end ¡ Compute Analytics Framework layer ¡ Array-based primitives ¡ I/O layer ¡ I/O server instance ¡ New storage model ¡ Storage layer ¡ Partitioning/hierarchical data mng System catalog ¡

  6. Storage model (dimension-independent) & implementation � Array-based support and hierarchical storage � Parallel I/O ¡

  7. Array based primitives � • Primitives provide array-based transformation • A comprehensive set of primitives have been already implemented ( ≈ 100) • By definition, a primitive is applied to a single fragment • They come in the form of plugins (I/O server extensions) • So far, Ophidia primitives perform data reduction, sub-setting, predicates evaluation, statistical analysis, compression, and so forth. • Support is provided both for byte -oriented and bit -oriented arrays • Plugins can be nested to get more complex functionalities • Compression is provided as a primitive too • Libraries like PetsC, GSL, C Math have been integrated

  8. ¡ Array based primitives: OPH_BOXPLOT oph_boxplot(measure, "OPH_DOUBLE”) Single chunk or fragment (output) ¡ Single chunk or fragment (input) ¡

  9. ¡ Array based primitives: nesting feature oph_boxplot(oph_subarray(oph_uncompress(measure), 1,18), "OPH_DOUBLE”) Single chunk or fragment (input) ¡ Single chunk or fragment (output) ¡ subarray(measure, 1,18) ¡

  10. The analytics framework: datacube operators (about 50) � OPERATOR NAME OPERATOR DESCRIPTION Operators “Data processing” – Domain-agnostic Data processing OPH_APPLY( datacube_in , Creates the datacube_out by applying datacube_out, the array-based primitive to the (parallel operators, MPI & array_based_primitive ) datacube_in OPH_DUPLICATE( datacube_ Creates a copy of the datacube_in in OpenMP based) ¡ in , datacube_out ) the datacube_out OPH_SUBSET( datacube_in , Creates the datacube_out by doing a subset_string, datacube_out ) sub-setting of the datacube_in by applying the subset_string Import/Export OPH_MERGE( datacube_in , Creates the datacube_out by merging merge_param , datacube_out ) groups of merge_param fragments (parallel operators) from datacube_in OPH_SPLIT( datacube_in , Creates the datacube_out by splitting split_param , datacube_out ) into groups of split_param fragments OPERATOR NAME OPERATOR DESCRIPTION each fragment of the datacube_in Operators “Data processing” – Domain-oriented OPH_INTERCOMPARISON Creates the datacube_out which is the OPH_EXPORT_NC Exports the datacube_in data into the ( datacube_in1, datacube_in2, element-wise difference between ( datacube_in , file_out ) file_out NetCDF file. datacube_out ) datacube_in1 and datacube_in2 OPH_IMPORT_NC Imports the data stored into the file_in OPH_DELETE( datacube_in ) Removes the datacube_in ( file_in , datacube_out ) NetCDF file into the new datacube_in datacube Operators “Data access” Data Access OPH_INSPECT_FRAG Inspects the data stored in the (sequential and parallel operators) ¡ ( datacube_in, fragment_in) fragment_in from the datacube_in OPH_PUBLISH( datacube_in ) Publishes the datacube_in fragments into HTML pages Operators “Metadata” OPH_CUBE_ELEMENTS Provides the total number of the ( datacube_in ) elements in the datacube_in Metadata management OPH_CUBE_SIZE Provides the disk space occupied by the ( datacube_in ) datacube_in (sequential and parallel operators) OPH_LIST(void) Provides the list of available datacubes. OPH_CUBEIO( datacube_in ) Provides the provenance information related to the datacube_in OPH_FIND( search_param ) Provides the list of datacubes matching the search_param criteria

  11. The analytics framework: datacube operators �

  12. ¡ Programmatic access: C & Python APIs hIps://www.youtube.com/watch?v=8pcrBXboF6U&feature=youtu.be ¡

  13. ¡ CLI access: the Ophidia Terminal • The ¡Ophidia ¡terminal ¡provides ¡an ¡effec(ve ¡and ¡lightweight ¡way ¡to ¡interact ¡with ¡the ¡Ophidia ¡server ¡ • Bash-­‑like ¡environment ¡(commands ¡interpreter) ¡ • Terminal ¡with ¡history ¡management, ¡auto-­‑comple(on, ¡specific ¡environment ¡variables ¡and ¡commands ¡ with ¡integrated ¡help… ¡ Easy ¡installa(on ¡as ¡an ¡only ¡one ¡executable ¡using ¡a ¡small ¡number ¡ • of ¡well-­‑known ¡and ¡open-­‑source ¡libraries ¡ Simple ¡enough ¡for ¡a ¡novice ¡and ¡at ¡the ¡same ¡(me ¡powerful ¡ • enough ¡for ¡an ¡expert ¡

  14. ¡ CLI access: the Ophidia Terminal (provenance)

  15. ¡ Modularity and extensibility: APIs and dynamic bindings Analytics Framework IO Server Manager Main Library (new_oph_ Library Oph_analitycs_ operator_client) operator_lib Oph_ioserver dynamic binding dynamic binding dynamic binding dynamic binding Library MySQL Ophidia I/O server Plugins Ophidia Operators Server 1 dynamic binding Oph_MYSQL … Driver 1 Driver N Oph_reduce_ Oph_importnc_ … operator Ophidia Primitives operator UDF MySQL Plugin Server K Plugin 1 Oph_OPHIDIAIO Oph_math … dynamic binding TCP/IP Channel Framework libraries Library Ophidia I/O server Plugin M MPI Library Oph_subarray Library OphidiaDB Oph_support Manager Module Module Query Engine Oph_iostorage dynamic binding dynamic binding Ophidia Storage Devices Library Library Library Math Library CDO Library … OpenMP GSL PetsC Device 1 Device L In-memory WOS

  16. EUBrazilCC project �  The main objective is the creation of a federated e-infrastructure for research using a user-centric approach (Coordinators EU-BR: I. Blanquer (UPV), F. V. Brasileiro (UFCG))  To achieve this, we need to pursue three objectives:  Adaptation of existing applications to tackle new scenarios emerging from cooperation between Europe and Brazil relevant to both regions.  Integration of frameworks and programming models for scientific gateways and complex workflows .  Federation of resources , to build up a general-purpose infrastructure comprising existing and heterogeneous resources  Data analytics workflows on heterogeneous datasets including climate , remote sensing data and observations (e.g. NetCDF, LANDSAT, LiDAR)

  17. Cloud-based deployment scenarios � Deployment ¡A ¡ ¡ VM ¡Instance ¡ ¡ Legend ¡ ¡ I/ C ¡ ¡ O ¡ Applica(on ¡Image ¡ ¡ S ¡ ¡ Data ¡Image ¡ ¡ ¡ Data ¡ Deployment ¡B ¡ ¡ VM ¡Instance ¡1 ¡ IO ¡Component ¡ ¡ ¡ VM ¡Instance ¡ ¡ VM ¡Instance ¡… ¡ ¡ ¡ Compute ¡Component ¡ ¡ I/ ¡ ¡ ¡ C ¡ VM ¡Instance ¡n ¡ ¡ O ¡ ¡ Server ¡Component ¡ ¡ ¡ I/ ¡ S ¡ ¡ C ¡ ¡ ¡ O ¡ ¡ ¡ I/ ¡ ¡ ¡ C ¡ ¡ O ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Deployment ¡C ¡ VM ¡Instance ¡1 ¡ VM ¡Instance ¡1 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ VM ¡Instance ¡… ¡ VM ¡Instance ¡ VM ¡Instance ¡… ¡ ¡ ¡ ¡ ¡ I/ ¡ ¡ ¡ C ¡ C ¡ VM ¡Instance ¡m ¡ ¡ ¡ ¡ VM ¡Instance ¡n ¡ ¡ O ¡ ¡ ¡ ¡ ¡ I/ ¡ ¡ ¡ ¡ C ¡ C ¡ S ¡ ¡ ¡ ¡ O ¡ ¡ ¡ ¡ ¡ I/ ¡ ¡ ¡ ¡ ¡ C ¡ ¡ ¡ O ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

Recommend


More recommend