COMPUTACIÓN DE ALTA PERFORMANCE



Documentos relacionados
GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Proyecto Fin de Carrera OpenNebula y Hadoop: Cloud Computing con herramientas Open Source

Red Hat Cloud Infrastructure. Alex Callejas Technical Account Manager Noviembre 2014

UNIVERSIDAD DE CASTILLA-LA MANCHA

Alessandro Chacón Ernesto Level Ricardo Santana

Grid Computing. Clase 1: glite Overview. Francisco García Eijó y Alejandro Soba. Laboratorio de Sistemas Complejos Universidad de Buenos Aires

Iniciación a las tecnologías Grid Granada de Marzo, 2010

Proyecto Grid Computing

Service Oriented Architecture

Universidad Nacional Autónoma de México Dirección de Sistemas Dirección General de Personal

Hadoop. Cómo vender un cluster Hadoop?

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Desarrollo y servicios web

Arquitectura de Proyectos de IT. Integración. Ing. Gastón Coco Ing. Nicolás Passerini Ing. Juan Arias Ing. Gustavo A. Brey Ing.

CLUSTER FING: ARQUITECTURA Y APLICACIONES

Transformación de los Servicios TIC universitarios mediante incorporación de cloud

Arquitectura de sistema de alta disponibilidad

Cloud Computing. Huibert Aalbers Senior Certified Executive IT Architect

Plataformas GRID. Área de Arquitectura y Tecnología de Computadores

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Cloud Security Alliance. Recomendaciones de Seguridad para Usuarios

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

CURSOS DE VERANO 2014

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Arquitectura: Clusters

Gestión de datos y otros servicios en GRID

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

III. INTRODUCCIÓN AL CLOUD COMPUTING

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS

Introducción a la Computación Distribuida y Condor

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Estructuras en Imagen Médica y Tecnologías Cloud

Capítulo 5. Cliente-Servidor.

Alumno: Jorge Sordo Balbín Profesor: Luis Joyanes Aguilar Nº Expediente: Correo Electrónico:

Tecnologías Grid Integración de herramientas grid

TEMA 2: CAPACIDAD: Diseño del Servicio TI Anexo II: Amazon EC2

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

MODERNIZANDO PCN Y RECUPERACION DE DESASTRES UTILIZANDO VIRTUALIZACION Y LA NUBE

Comunicación entre procesos

Servicios web. Jorge Iván Meza Martínez

SISTEMAS DE INFORMACIÓN III TEORÍA

Servicios Web con Java EE

Servicios Web con Java EE

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

Cloud Computing. Rodrigo Moreno Rosales DN-11

Cloud Computing: Su información esta segura?

Sistema de gestión de tareas y proyectos

GlusterFS. Una visión rápida a uno de los más innovadores sistema de archivos distribuido

CAPÍTULO I INTRODUCCIÓN

Computación Distribuida

Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Síntesis Lecturas Recomendadas. Arquitectura de Computadoras

Qué supone la tecnología Cloud para las organizaciones y los departamentos de IT. Andrés Prado Director TIC Universidad de Castilla La Mancha

4. Programación Paralela

2524 Developing XML Web Services Using Microsoft ASP.NET

Proyecto e-ca: Organización Virtual y Testbed. Susana Sánchez Expósito José Ruedas Sánchez II Reunión de e-ciencia Andaluza 16-17, Octubre 2008

toda la potencia de un Dedicado con la flexibilidad del Cloud

BIG DATA. Jorge Mercado. Software Quality Engineer

A3S: un caso práctico de implantación de Cloud Services

Problemas. Limitaciones de clusters. Intranet Computing. TEMA 4: Grid Computing

SISTEMAS DE INFORMACIÓN II TEORÍA

DIPLOMADO EN SEGURIDAD INFORMATICA

Capítulo 6 Introducción a los Sistemas Operativos de Redes (NOS)

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

1. Sistemas Distribuidos

5.1 Introducción a Servicios Web

AAPP & Cloud Computing

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Sesión 17. Servicios web RESTful

Soluciones para entornos HPC

En este capitulo analizaremos los cuatro diferentes métodos para obtener la

La vida en un mundo centrado en la red

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Visión General de GXportal. Última actualización: 2009

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

8 de Mayo de 2003 WORKSHOP IRIS-GRID. Middleware COORDINACIÓN

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

Glosario Acoplamiento. API. Archivos de recursos. ASCII. Balanceo de carga. Bases de datos federadas. BBDD. Clientes. Constructores.

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

INTRODUCCIÓN A LA COMPUTACION EN LA NUBE Y BIG DATA (1) Ing. Carlos Ormella Meyer

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

WHITE PAPER MIGRACIÓN DE UNA APLICACIÓN ON-PREMISE A WINDOWS AZURE. OSSESoluciones - Cartera de Soluciones en Tecnologías de Información

BIG DATA & SEGURIDAD UN MATRIMONIO DE FUTURO

Sistemas de Operación II

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Arquitectura cliente/servidor

Cloud Computing. Mario José Villamizar Cano Investigador, Consultor y Arquitecto Cloud Computing

Big Data: retos a nivel de desarrollo. Ing. Jorge Camargo, MSc, PhD (c) jcamargo@bigdatasolubons.co

IaaS en los estudios de informática

Ubuntu in the Clouds. Ubuntu Jaunty Jackalope Ing. Andrés E. Rodriguez Lazo

HPC & Cloud Experts. Conceptos Compatibles?

ANEXO 1. ANEXO TÉCNICO

Objetos Distribuidos - Componentes. Middleware

Transcripción:

COMPUTACIÓN DE ALTA PERFORMANCE 2010 1 OTRAS TECNOLOGÍAS COMPUTACIÓN DE ALTA PERFORMANCE Curso 2010 Sergio Nesmachnow (sergion@fing.edu.uy) Gerardo Ares (gares@fing.edu.uy) Santiago Iturriaga (siturria@fing.edu.uy) Grupo de Procesamiento Paralelo Aplicado Centro de Cálculo

COMPUTACIÓN DE ALTA PERFORMANCE 2010 2 OTRAS TECNOLOGÍAS OTRAS TECNOLOGÍAS RELACIONADAS CON HPC

COMPUTACIÓN DE ALTA PERFORMANCE 2010 3 OTRAS TECNOLOGÍAS CONTENIDO Programación distribuida. Grid computing. Cloud computing. MapReduce framework.

PROGRAMACIÓN DISTRIBUIDA COMPUTACIÓN DE ALTA PERFORMANCE 2010 4 OTRAS TECNOLOGÍAS

PROGRAMACIÓN DISTRIBUIDA Diferentes opciones al momento de implementar comunicación entre procesos. Remote Procedure Call (RPC). SOAP. Java RMI..NET Remoting. Representational State Transfer (REST). World Wide Web. Message-queues. Microsoft Message Queuing. Erlang. COMPUTACIÓN DE ALTA PERFORMANCE 2010 5 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 6 OTRAS TECNOLOGÍAS SOAP-RPC WEB SERVICE Simple Object Access Protocol (SOAP) es un protocolo para el intercambio de mensajes estructurados. XML para la serialización del mensaje. Como protocolo de transporte utiliza protocolos de capa de aplicación (HTTP, SMTP, etc.). WSDL, lenguaje para la descripción del servicio. XML para la descripción del servicio. Ventajas Interoperabilidad. Versatilidad. Desventajas Performance. Complejidad.

SOAP-RPC WEB SERVICE COMPUTACIÓN DE ALTA PERFORMANCE 2010 7 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 8 OTRAS TECNOLOGÍAS RESTful WEB SERVICE Arquitectura de software de tipo cliente/servidor desarrollada para la WWW. Cuando un cliente no se encuentra intercambiando datos con un servidor se dice que se encuentra at rest (en descanso). Un cliente at rest no consume recursos ni de la red ni de el conjunto de servidores. No existe un estándar. Para la serialización de los mensajes puede utilizarse JSON, XML, YAML, etc. El conjunto de operaciones soportadas se encuentra dada por el transporte utilizado, p.ej. para el caso de HTTP: POST, GET, PUT o DELETE.

COMPUTACIÓN DE ALTA PERFORMANCE 2010 9 OTRAS TECNOLOGÍAS RESTful WEB SERVICE Ejemplos: http://empresa.com/productos/ GET: obtiene un listado de productos. POST: crea un nuevo producto. http://empresa.com/productos/42 GET: obtiene el detalle de un producto. DELETE: eliminar un producto. JSON {"producto": { "id": "42", "nombre": "un producto", "comentarios": [ "muy buen producto", "otro comentario" ]}} XML <producto id="42" nombre="un producto"> <comentarios> <comentario texto="muy buen producto" /> <comentario texto="otro comentario" /> </comentarios> </producto>

COMPUTACIÓN DE ALTA PERFORMANCE 2010 10 OTRAS TECNOLOGÍAS MESSAGE QUEUES MIDDLEWARE Las colas de mensajes proveen comunicación asincrónica entre procesos. Los mensajes son enviados y almacenados en la cola de mensajes hasta que el destinatario los obtiene. Características: Comunicación desacoplada. No requieren conectividad entre el proceso origen y el proceso destino. Escenarios de aplicación: Aplicaciones store and forward. Aplicaciones defensivas. Aplicaciones desconectadas.

COMPUTACIÓN DE ALTA PERFORMANCE 2010 11 OTRAS TECNOLOGÍAS MESSAGE QUEUES MIDDLEWARE

GRID COMPUTING COMPUTACIÓN DE ALTA PERFORMANCE 2010 12 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 13 OTRAS TECNOLOGÍAS GRID COMPUTING Qué es un Grid? a type of parallel and distributed system that enables the sharing, selection, and aggregation of geographically distributed autonomous resources dynamically at runtime depending on their availability, capability, performance, cost, and users' quality-of-service requirements". Buyya/Venugopal

COMPUTACIÓN DE ALTA PERFORMANCE 2010 14 OTRAS TECNOLOGÍAS Tipos de Grids Grids voluntarios. Grids colaborativos. Grids comerciales. Características. Middleware. Condor. glite. GRID COMPUTING

COMPUTACIÓN DE ALTA PERFORMANCE 2010 15 OTRAS TECNOLOGÍAS GRIDS VOLUNTARIOS Volunteer grid computing es un tipo de computación distribuida en el que los usuarios donan sus recursos de computo. CPU-scavenging crea un grid utilizando los recursos no utilizados en una red de usuarios. Con esta técnica se aprovechan ciclos de computo que en otro caso se perderían. Middlewares: The Berkeley Open Infrastructure for Network Computing (BOINC), XtremWeb, Xgrid, Grid MP. Proyectos de este tipo: Folding@home SETI@home Einstein@Home LHC@Home

COMPUTACIÓN DE ALTA PERFORMANCE 2010 16 OTRAS TECNOLOGÍAS GRIDS COLABORATIVOS LHC Computing Grid (LCG) fue desarrollado para dar soporte a los experimentos realizados en el CERN Large Hadron Collider. LCG se encuentra formado por más de 170 centros de cómputo distribuidos en 34 países. Se manejan enormes cantidades de datos. 27 terabytes de datos crudos por día. Se estiman 10-15 petabytes por año. Compuesta por clusters de institutos y universidades. Organizada en Virtual Organizations (VOs). Middlewares: Globus Toolkit, glite, UNICORE. Soporta la ejecución de aplicaciones HPC (e.g. uso de MPI).

GRIDS COLABORATIVOS COMPUTACIÓN DE ALTA PERFORMANCE 2010 17 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 18 OTRAS TECNOLOGÍAS GRIDS COLABORATIVOS Proyecto GISELA (Grid Initiatives for e-science virtual communities in Europe and Latin America). Comenzó en Setiembre de 2010 y finalizará en Setiembre de 2012. Financiado con fondos de European Grid Initiative (EGI).

COMPUTACIÓN DE ALTA PERFORMANCE 2010 19 OTRAS TECNOLOGÍAS GRID COMPUTING Características Alta escalabilidad. Distribución geográfica. Heterogeneidad de recursos. Resource sharing. Acceso transparente. Acceso confiable. Acceso consistente. Pervasive access. Componentes autónomos. Aspectos a considerar Privacidad de la información. Necesidad de desarrollo de aplicaciones específicas para el Grid. Comunicación lenta y no uniforme.

COMPUTACIÓN DE ALTA PERFORMANCE 2010 20 OTRAS TECNOLOGÍAS CONDOR MIDDLEWARE Condor es un framework para High-Throughput Computing (HTC). Especializado en tareas paralelas distribuidas de «grano grueso» y computacionalmente intensivas. Puede utilizarse para el manejo combinado de recursos dedicados y recursos no dedicados (CPU-scavenging). CPU-scavenging. Cada estación de trabajo se ejecuta un demonio que monitorea la E/S y la carga de CPU. Cuando una estación de trabajo ha estado ociosa durante una cantidad de tiempo, le es asignado un trabajo de la cola de ejecución. Cuando se detecta movimiento en el mouse, se presiona una tecla o se detecta un alto uso de CPU por parte de una aplicación, el trabajo es detenido y enviado nuevamente a la cola de ejecución. Ofrece soporte para las bibliotecas MPI y PVM.

COMPUTACIÓN DE ALTA PERFORMANCE 2010 21 OTRAS TECNOLOGÍAS GLITE MIDDLEWARE glite es un middleware stack para Grid computing. Utilizado por CERN LHC. Seguridad. Organizado en VOs. Grid Security Infrastructure (GSI) basada en PKI y SSL con extensiones para single sign-on y delegación. Principales componentes. User interface (UI). Computing element (CE). Expone una interfaz genérica Grid Gate (GG). Cuenta con un Local Resource Management System (LRMS), e.g.: Condor, PBS, SGE, TORQUE, SLURM, etc. Una colección de Working Nodes (WN).

COMPUTACIÓN DE ALTA PERFORMANCE 2010 22 OTRAS TECNOLOGÍAS GLITE MIDDLEWARE Principales componentes (continuación). Storage Element (SE). Storage Resource Manager (SRM). Acceso mediante GSI-FTP y Grid File Access Library (GFAL). Implementación mediante dcache. Tolerancia a fallos mediante replicas de archivos. Balanceo de carga, define una representación lógica de los archivos separada de su representación física. Provee un protocolo dcap con operaciones genéricas de acceso a archivos, e.g.: open, read, write, seek, close, etc. Workload Management System (WMS). Acepta trabajos de los usuarios y los asigna al CE más apropiado. Descripción de trabajos mediante Job Description Language (JDL).

GLITE MIDDLEWARE COMPUTACIÓN DE ALTA PERFORMANCE 2010 23 OTRAS TECNOLOGÍAS

CLOUD COMPUTING COMPUTACIÓN DE ALTA PERFORMANCE 2010 24 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 25 OTRAS TECNOLOGÍAS CLOUD COMPUTING Qué es Cloud computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

COMPUTACIÓN DE ALTA PERFORMANCE 2010 26 OTRAS TECNOLOGÍAS CLOUD COMPUTING Cloud Software as a Service (SaaS). El servicio provisto al usuario consiste en consumir una aplicación que es ejecutada en la nube. El usuario no maneja ni controla el infraestructura subyacente de la nube. Cloud Platform as a Service (PaaS). El servicio provisto al usuario consiste en utilizar la infraestructura de la nube para ejecutar aplicaciones desarrolladas por el usuario o adquirida de terceros. El usuario no maneja ni controla el infraestructura subyacente de la nube, pero tiene control sobre la aplicación que es ejecutada y sobre la configuración del entorno de ejecución de la aplicación. Cloud Infrastructure as a Service (IaaS). El servicio provisto al usuario consiste en la infraestructura de ejecución. El usuario es capaz de ejecutar código arbitrario, controla el sistema operativo y todas las aplicaciones de la nube.

CLOUD COMPUTING Clouds convencionales no ofrecen un buen soporte para aplicaciones HPC. Enfocadas en soportar aplicaciones y servicios de propósito general. Optimizadas para transacciones de corta duración, e.g. peticiones de aplicaciones Web. Este tipo de aplicaciones no requieren comunicación entre procesos. No se manejan servidores dedicados, los recursos de cómputo son instancias de virtualizadas. COMPUTACIÓN DE ALTA PERFORMANCE 2010 27 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 28 OTRAS TECNOLOGÍAS CLOUD COMPUTING Amazon Elastic Compute Cloud (EC2) ofrece instancias Cluster Compute especificas para aplicaciones HPC y aplicaciones que requieren comunicación entre procesos. Características: 23GB de memoria. 33.5 unidades de cómputo EC2 El desempeño de una unidad de cómputo EC2 (ECU) equivale a una CPU Opteron o Xeon del 2007 con 1.0-1.2GHz. OS Linux 64bits. 10 Gigabit Ethernet. 1.690GB de almacenamiento. Desarrollado por Amazon en conjunto con investigadores del Lawrence Berkeley National Laboratory. Costo de $1.60 por hora, o $4290 anuales.

MapReduce COMPUTACIÓN DE ALTA PERFORMANCE 2010 29 OTRAS TECNOLOGÍAS

MapReduce Las funciones Map y Reduce son funciones de alto orden que tienen su origen en la programación funcional. La función Map aplica una función dada a una lista de elementos de a un elemento por vez, y retorna una lista de resultados. La función Reduce itera en una lista de elementos, aplica una función a cada elemento, y retorna el resultado acumulado. MapReduce es modelo de programación desarrollado por Google para dar soporte a la ejecución de aplicaciones distribuidas que trabajan sobre grandes volúmenes de datos en clusters de computadores. Existen implementaciones C++, C#, Erlang, Java, Python, Ruby, F#, R, etc. COMPUTACIÓN DE ALTA PERFORMANCE 2010 30 OTRAS TECNOLOGÍAS

MapReduce Las funciones Map y Reduce del framework trabajan sobre elementos estructurados en pares (clave, valor). Map recibe un par (clave, valor) de un dominio y lo transforma en otro dominio diferente. Map(k1,v1) -> list(k2,v2) La función Map es aplicada en paralelo a cada elemento del conjunto de datos. Luego de aplicada la función Map, cada elemento del conjunto de datos original es transformado en una lista de pares (k2,v2). Luego el framework MapReduce recolecta, de todas las listas, todos los pares (k2,v2) que comparten la misma clave y los agrupa. Luego de esto se tienen agrupados los valores v2 que comparten la misma clave k2. COMPUTACIÓN DE ALTA PERFORMANCE 2010 31 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 32 OTRAS TECNOLOGÍAS MapReduce La función Reduce es aplicada en paralelo sobre cada grupo y produce una colección de valores. Reduce(k2, list (v2)) -> list(v3) En general la función Reduce retorna un solo valor v3 o la colección vacía, aunque puede retornar todos los valores que sean necesarios. La unión de todas las colecciones de valores v3 son retornadas como el resultado final. En definitiva, el framework MapReduce toma una lista de pares de elementos de tipo (clave, valor) y los transforma en una lista de valores.

EJEMPLO WORD COUNT Supongamos que se desea contar la cantidad de ocurrencias de cada palabra en un conjunto de páginas. Páginas: Page 1: the weather is good. Page 2: today is good. Page 3: good weather is good. Lista de pares (k1,v1): [(Page 1, the weather is good), (Page 2, today is good), (Page 3, good weather is good)] COMPUTACIÓN DE ALTA PERFORMANCE 2010 33 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 34 OTRAS TECNOLOGÍAS EJEMPLO WORD COUNT Se paraleliza la ejecución de la función Map. Luego de aplicar la función Map sobre cada par (k1,v1) obtenemos las siguientes listas (k2,v2): Worker 1: [(the, 1), (weather,1), (good,1)] Worker 2: [(today,1), (is,1), (good,1)] Worker 3: [(good,2), (weather,1), (is,1)]

EJEMPLO WORD COUNT Se agrupan los resultados de la función Map que comparten una misma clave k1 y se paraleliza la ejecución de la función Reduce. La entrada de la función Reduce es la siguiente: Worker 1: [(the, 1)] Worker 2: [(is,1), (is,1), (is,1)] Worker 3: [(weather,1), (weather,1)] Worker 4: [(today,1)] Worker 5: [(good,2), (good,1), (good,1)] COMPUTACIÓN DE ALTA PERFORMANCE 2010 35 OTRAS TECNOLOGÍAS

EJEMPLO WORD COUNT La salida de la función Reduce es: Worker 1: [(the, 1)] Worker 2: [(is,3)] Worker 3: [(weather,2)] Worker 4: [(today,1)] Worker 5: [(good,4)] COMPUTACIÓN DE ALTA PERFORMANCE 2010 36 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 37 OTRAS TECNOLOGÍAS OTROS EJEMPLOS Otros ejemplos de aplicaciones que pueden ser desarrolladas con MapReduce: Grep distribuido. Sort distribuido. Frecuencia de acceso a una URL. Índice inverso de palabras. Grafo inverso de referencias Web. PageRank de Google.

MapReduce COMPUTACIÓN DE ALTA PERFORMANCE 2010 38 OTRAS TECNOLOGÍAS

COMPUTACIÓN DE ALTA PERFORMANCE 2010 39 OTRAS TECNOLOGÍAS MapReduce Beneficios. Reduce la complejidad de la sincronización entre procesos. Particionamiento automático de datos. Tolerancia a fallos de forma transparente. Maneja el balanceo de carga. Implementaciones. Apache Hadoop (Java). Open source. Hadoop Distributed File System (HDFS). Skynet (Ruby). Mars (CUDA). Google MapReduce (C++). Google File System (GFS).