mpc Un entorno de programación paralela basado en C Carlos Hoyos Barceló
|
|
- Adrián Giménez Agüero
- hace 5 años
- Vistas:
Transcripción
1 mpc Un entorno de programación paralela basado en C Carlos Hoyos Barceló
2 Introducción mpc es una extensión del lenguaje ANSI C que incorpora primitivas para la programación de aplicaciones paralelas portables en redes heterogéneas. Es una evolución del lenguaje C[], una extensión de C optimizada para operaciones vectoriales. Mientras C[] abordaba el paralelismo a nivel de instrucción y de memoria en un único chip, mpc se diseñó para arquitecturas de memoria distribuida.
3 Características Coordinación mediante paso de mensajes (MPI) Abstracciones de alto nivel para que el programador no deba ocuparse de los detalles de implementación a nivel MPI. Diseñado para adaptarse a cualquier arquitectura distribuida con nodos de distinta capacidad (velocidad, memoria, etc).
4 Funcionamiento Un programa mpc define una red abstracta, y luego distribuye mensajes, datos, y lotes de cómputo a través de dicha red. El entorno proyecta la red abstracta sobre una red real de modo que se optimice la ejecución del programa sobre dicha red. La proyección se realiza dinámicamente en tiempo de ejecución, teniendo en cuenta el desempeño de cada procesador en la red.
5 Primeros pasos Un programador de mpc no sabe cuántos procesos constituyen un programa, ni en qué procesador se ejecutarán. El código fuente sólo especifica qué cómputos ha de ejecutar cada proceso del programa. mpc gestiona espacios de cómputo, conjuntos de procesadores virtuales agrupados en redes, que se asignan a tareas de modo similar a cómo se asigna memoria a los procesos en C.
6 Primeros pasos (II) Cada nodo de red puede tener diferentes características, lo que puede indicarse asignándole uno o más tipos. Los tipos de procesador son: de memoria, de cómputo vectorial, o escalar (estándar). Inicialmente, los programas mpc sólo tienen definido un procesador a lo largo de todo el programa, el proceso host, de tipo ordinario y escalar.
7 Definir redes en mpc Todo proceso es capaz de crear una nueva red. Al hacerlo, el proceso se incluye en la nueva red y pasa a ser su nodo padre. Si no se especifica un enlace entre dos nodos, estos se conectarán mediante un enlace por defecto, de longitud más larga que la mayor de las disponibles en la red. Al especificar enlaces, estos pueden ser unidireccionales -> o bidireccionales <->
8 Definir redes en mpc (II) nettype Rectangle { coord I=4; node { I<2: fast scalar; I>2: slow scalar; default: scalar; }; link { I>0: [I]<->[I-1]; I==0: [I]<->[3]; }; parent [0]; }; Código para definir un tipo de red abstracta heterogénea
9 Definir redes en mpc (III) Las clases de redes se definen usando nettype. coord establece las coordenadas (número de nodos en la red), puede tener varias dimensiones (para especificar mallas de procesadores, etc.) El atributo node permite asignarle tipos específicos a los nodos de estas redes (fast, void, slow ) El atributo link permite interconectar nodos. En el ejemplo, los nodos I>0 se conectan con su nodo previo, mientras que el nodo I 0 se conecta con I 3. parent señala cuál de los nodos será el padre.
10 Definir redes en mpc (V) Una vez definida una clase de red abstracta, se puede instanciar como cualquier otro tipo de datos en C. net Rectangle r1; Crear una red establece un nuevo espacio de cómputo. Es posible distribuir variables sobre este nuevo espacio de cómputo indicando una etiqueta de red en su declaración. int [r1]da[10]; //array en r1
11 Programar en mpc El manual de mpc se vale de programas de ejemplo para ir introduciendo paulatinamente a los programadores que vienen de C los conceptos novedosos del nuevo lenguaje. A continuación se muestran algunos de estos programas de ejemplo junto con una breve explicación del concepto que ilustran.
12 El primer programa paralelo Holamundo.mpc #include <stdio.h> int [*]main() { [host]printf( Hola, mundo!\n ); } Un programa mpc es muy similar a uno de C. mpc permite asignar etiquetas a funciones para especificar qué espacios de cómputo las ejecutarán en un programa paralelo.
13 El primer programa paralelo (II) La etiqueta [*] en HolaMundo.mpc indica que la función main es una función básica, y por tanto debe ser ejecutada por todos los procesos paralelos para garantizar un resultado correcto. Si una función sólo es invocada por uno (o más) procesos, se denomina nodal. En el ejemplo, [host] indica que la llamada a la función printf sólo la ejecutará el proceso asociado a la terminal de usuario que arrancó el programa.
14 El primer programa paralelo (III) Si se deseara que más de un proceso ejecutara la función printf, sería difícil predecir la salida del terminal, ya que sólo se mostrarían los mensajes de los procesos que estuvieran en la misma máquina que el host. Como este comportamiento no es deseable, la librería mpc.h incluye la función MPC_Printf que imprime los mensajes de todos los procesos en la misma terminal que el host.
15 El segundo programa paralelo Holamundo2.mpc #include <mpc.h> int [*]main() { MPC_Printf( Hola, mundo!\n ); } En este caso, se imprimen en la terminal del usuario tantos mensajes como procesos se ejecutan. El número concreto de procesos se indica en una directiva externa al programa.
16 Variables distribuidas Para saber en qué máquina se ejecuta un proceso se utiliza la función uname que requiere una variable de tipo utsname. Esta variable debe ser distribuida para que cada proceso almacene su propia versión local, con el valor apropiado para la máquina en la que se ejecuta. Cada proceso debe asignar valores a las variables que se distribuyen a su red.
17 El tercer programa paralelo Holamundo3.mpc #include <mpc.h> #include <sys/utsname.h> int [*]main() { struct utsname [*]un; [*]uname(&un); [*]MPC_Printf( Hola, mundo! Me ejecuto en %s.\n,un.nodename); } un es una variable distribuida, cada proceso almacena su versión. [*] puede cambiarse por [host] para que sólo lo ejecute un proceso.
18 Replicación de variables Un objeto puede replicarse para distribuir una copia exacta de todos sus componentes a todos los espacios de cómputo indicados. Los cambios al valor al objeto se propagan a todos los espacios mediante inundación. Si no se indica el tipo, se toma por defecto int. repl [*]a[4]={10,20,30,40}; En este ejemplo, todos los espacios de cómputo almacenan una copia del array de enteros a[4]
19 Redes Genéricas Es posible definir redes genéricas, de modo que al crear instancias de estas redes se pueda personalizar algunos aspectos de la red, como el número de nodos, o la potencia relativa de cada uno. Para ello, en la definición de la clase de red se incluye uno o más parámetros que se rellenan durante la creación de instancias.
20 Redes Genéricas (II) nettype Star(m,n[m]) { coord I=m; //numero de nodos node { I>=0: fast*n[i] scalar;} link { I>0: [I]->[0],[0]->[I]; }; parent [0]; }; En este caso tenemos una red genérica de tipo estrella con dos parámetros, el número de nodos de la red, y un array que indica la potencia relativa de cada uno. Los parámetros pueden darse en tiempo de ejecución.
21 Barreras El mecanismo de sincronización de MPI es la barrera. Los procesos esperan en ella hasta que todos la alcanzan antes de proseguir con la ejecución del programa. La función MPC_Barrier() permite establecer barreras para un espacio de cómputo. [mynet]mpc_barrier();
22 Subredes Por ahora, es posible hacer que una única red ejecute un conjunto de funciones. Si se quiere que sólo un subconjunto de miembros de una red acceda a un recurso, pueden hacerse filtros basados en coordenadas. Las subredes permiten fragmentar los problemas y asignar cada parte a una subred, reduciendo el coste de intercambio de datos y cómputos.
23 Subredes (II) #include <string.h> #include <mpc.h> #include <sys/utsname.h> nettype Mesh(int m,int n) { coord I=m,J=n; //malla MxN parent [0,0]; }; #define MAXLEN 256 int [*]main() { net Mesh(2,3) [host]m;...
24 Subredes (III)... [m]: { struct utsname un; char yo[maxlen], vecino[maxlen]; subnet [m:i==0]fila0, [m:i==1]fila1; uname(&un); strcpy(yo, un.nodename); [fila0]vecino[] = [fila1]yo[]; [fila1]vecino[] = [fila0]yo[]; MPC_Printf( Estoy en %s y mis coordenadas son (%d, %d).\n, yo, I coordof m, J coordof m); MPC_Printf("Mi vecino esta en %s.\n", vecino); } //fin de bloque de ejecucion de m }
25 Subredes (IV) 1. El proceso host crea una red de tipo Malla de tamaño 2x3, y pasa a formar parte de dicha red. 2. Luego viene un bloque exclusivo para los procesos pertenecientes a la malla, en ella se define una subred fila0 para los nodos de la malla para los que la coordenada I vale 0, y una fila1 para los que no. 3. Cada proceso copia el nombre de su máquina en el vector yo.
26 Subredes (V) 4. A continuación, los nodos de la subred fila1 copian el vector que contiene sus respectivos nombres de máquina al vector vecino en la otra subred, y viceversa. 5. Para mostrar el valor de las coordenadas de cada nodo se utiliza el operador coordof 6. yo y vecino son variables distribuidas en m por estar declaradas dentro de su bloque.
27 Instalación mpc en linux 1. Descargar mpc 4.0 ( $ mkdir build $ cd build $../configure prefix=? $ make all install check 2. Para compilar y ejecutar programas $ mpcc program.mpc o program.c $ mpicc program.c o program -lpmc $ mpirun np 4 program rtopofile=topo
28 Máquina virtual paralela (MVP) La máquina virtual paralela (MVP) es la que se encarga de ejecutar los programas mpc almacenados en la carpeta indicada por la variable de entorno $MPCTOPO. El formato de su fichero de configuración es: <nombre><nº procesos><nº procesadores> donde <nombre> es el nombre de la estación de trabajo indicado en /etc/hosts
29 Máquina Virtual Paralela (MVP) (II) Por ejemplo, el fichero de configuración para una máquina de memoria distribuida con tres estaciones de trabajo (alfa, beta, gamma) con cinco procesos cada uno, teniendo de host a alfa, sería como sigue: #tres workstations ejecutando 5 procesos alfa 5 beta 5 gamma 5
30 mpc-workshop mpc-workshop es un entorno integrado de desarrollo (IDE) de aplicaciones paralelas en mpc para plataformas Windows. Incluye editor, compilador, depurador, visor de datos, y entorno de ejecución de línea de comandos. Es gratuito y puede descargarse desde la siguiente dirección (
31 Bibliografía mpc language especification manual mpc workshop user s guide mpc tutorial by Alexey L. Lastovetsky mpc: a multi-paradigm programming language for massively parallel computers Alexey L. Lastovetsky High perfomance computing on Heterogeneous Networks Alexey Lastovetsky
Presentación de Open MPI
Presentación de Open MPI Qué es Open MPI? Se trata de una API de código abierto desarrollada para facilitar la programación paralela y/o distribuida que: Implementa el estándar MPI. Permite la distribución
Más detallesPROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela
PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela
Más detallesINTRODUCCIÓN A LA POO EN C++
INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general
Más detalles1 Primitivas básicas de OpenMP
1 Primitivas básicas de OpenMP Consultar la página oficial de la plataforma OpenMP http://www.openmp.org/drupal/ Pragmas Es una directiva para el compilador que permite la definición de nuevas directivas
Más detallesMETODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela
METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Tipos de paralelismo
Más detallesProgramación. Test Autoevaluación Tema 6
Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesSISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI. PREPARACIÓN
Más detallesroducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación
There are no translations available. Introducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C.
Más detallesLenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Más detallesInstalación de MPE. (MPI Parallel Environment) Programación Distribuida y Paralela. Departamento del LSI. Universidad de Granada
Instalación de MPE (MPI Parallel Environment) Programación Distribuida y Paralela Universidad de Granada Departamento del LSI Por: Daniel Guerrero Martínez Sergio Rodríguez Lumley 1 Índice de contenido
Más detallesC1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid
C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles
Más detallesFunciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Más detallesCapítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C 1 OBJETIVOS Aprender a
Más detallesParadigma de paso de mensajes
Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:
Más detallesIntroducción a la Programación de Memoria Compartida.. con OpenMP
Introducción a la Programación de Memoria Compartida.. con OpenMP Carlos Jaime BARRIOS HERNANDEZ, PhD. Escuela de Ingeniería de Sistemas e Informática Universidad Industrial de Santander Las herramientas
Más detallesInstalación de TAU. (Tuning and Analysis Utilities) Programación Distribuida y Paralela. Departamento del LSI. Universidad de Granada
Instalación de TAU (Tuning and Analysis Utilities) Programación Distribuida y Paralela Universidad de Granada Departamento del LSI Por: Daniel Guerrero Martínez Sergio Rodríguez Lumley 1 Índice de contenido
Más detallesLenguaje de Programación: C++ Directivas al preprocesador
UG Lenguaje de Programación: C++ Directivas al preprocesador Universidad de Guanajuato Septiembre 2010 Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesTipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesHISTORIA DE C Creado entre 1972 por Brian Kernighan y Dennis Ritchie para escribir el código del sistema operativo UNIX. A mediados de los ochenta se
LENGUAJE DE PROGRAMACION C Introducción al Lenguaje HISTORIA DE C Creado entre 1972 por Brian Kernighan y Dennis Ritchie para escribir el código del sistema operativo UNIX. A mediados de los ochenta se
Más detallesTema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Más detallesExamen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos
Más detallesUnidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas
Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto
Más detallesEscalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.
Página 1 de 8 Introducción a BSP La motivación para el modelo de computación paralela BSP (The Bulk-Synchronous Parallel Model) surge de una comparación con lo que se observa en el mundo de la computación
Más detallesIntroducción a Cómputo Paralelo con CUDA C/C++
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Introducción a Cómputo Paralelo con CUDA C/C++ Laboratorio de Intel y Cómputo de alto desempeño Elaboran: Revisión: Ing. Laura Sandoval Montaño
Más detallesIntroducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
Más detallesParalelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas
Paralelismo MPI Paso de mensajes Francisco García Sánchez Departamento de Informática y Sistemas Contenido Introducción 1) Uso de MPI 2) Multiplicación de matrices 3) Ordenación por mezcla 4) Programación
Más detallesCUDA 5.5 y Visual Studio Express 2012 para Escritorio. Primeros pasos.
CUDA 5.5 y Visual Studio Express 2012 para Escritorio. Primeros pasos. La nueva versión de CUDA 5.5 es completamente compatible con la plataforma de desarrollo Visual Studio Express 2012 para escritorio
Más detallesCómputo paralelo con openmp y C
Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27
Más detallesMPP. MIMD Computador Masivamente Paralelo
MPP MIMD Computador Masivamente Paralelo BLUE GENE/Q Introducción Se trata del tercer representante de una serie que comenzó con el Blue Gene/L y continuó con el Blue Gene/P. Son máquinas desarrolladas
Más detallesSistemas Informáticos Industriales
Escuela Técnica Superior de Ingeniería y Diseño Industrial Universidad Politécnica de Madrid Llamadas a Procedimientos Remotos (RPC) Sistemas Informáticos Industriales 2017/2018 Raquel CEDAZO LEÓN
Más detallesÍndice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa
Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura
Más detallesPráctica 1: (Tema 2) Instalación de MaRTE OS
Práctica 1: (Tema 2) Instalación de Objetivos: Instalar practicar el uso del entorno de de ción Concurrente oct-13 1 Acceso a los puestos del laboratorio Elegir la primera de las opciones de arranque:
Más detallesLABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje
Más detallesAlgoritmo, Estructuras y Programación I Ing. Marglorie Colina
Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona
Más detallesFunciones y paso de parámetros
Unidad Didáctica 24 Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice Consideraciones sobre funciones Estructura de una función
Más detallesPARTE II PROGRAMACION CON THREADS EN C
PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.
Más detallesRecursión como herramienta en resolución de problemas computacionales
Recursión como herramienta en resolución de problemas computacionales Modularidad! Es común dividir los algoritmos en módulos! Cada módulo lleva a cabo cierta funcionalidad! Muchas veces los módulos sirven
Más detallesEs un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.
Lenguaje C Un poco de historia C es un lenguaje de propósito general, es decir, se pueden desarrollar aplicaciones de diversas áreas. Dentro de sus principales características podemos mencionar que: Es
Más detallesTAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.
1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;
Más detallesTP N 14 Compilando C/C++ bajo GNU/Linux
Taller de GNU/Linux 2003- TP14 - hoja 1/5 Universidad Nacional de La Matanza Ingeniería en Informática-Taller de GNU/Linux 2003 TP N 14 Compilando C/C++ bajo GNU/Linux Objetivos: Utilizar en forma básica
Más detalles2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 0. Entorno de programación: atcgrid y gestor TORQUE
2º curso / 2º cuatr. 2º curso / 2º cuatr. Grado en Ing. Informática Arquitectura de Computadores Seminario 0. Entorno de programación: atcgrid y gestor TORQUE 2 Contenidos Cluster de prácticas (atcgrid)
Más detallesDepartamento de Electrónica
Introducción al Departamento de Electrónica Fundación San Valero Introducción al 1 Introducción al Introducción al 2 Introducción al Introducción al 3 Características del Características del Departamento
Más detallesSeminario de Programación en Ada
Seminario de Programación en Ada Tutorial básico del entorno de desarrollo GPS GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez, Héctor Pérez Tijero 1 Estructura del laboratorio
Más detallesINSTITUTO POLITÉCNICO NACIONAL
Página 1 de 6 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO Practica 04 de Sistemas Operativos II Profr. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco Noviembre
Más detallesPresentación del Curso Presencial. Programación en Java Nivel Básico
Presentación del Curso Presencial Programación en Java Nivel Básico Tabla de contenido Presentación del curso... 3 Objetivos de aprendizaje... 6 Contenidos del curso... 7 Competencias previas... 9 Recursos...
Más detallesProgramación I.
Programación I toni.navarrete@upf.edu jesus.ibanez@upf.edu Profesores teoría Toni Navarrete e-mail: despacho: toni.navarrete@upf.edu 371 Jesús Ibáñez e-mail: despacho: jesus.ibanez@upf.edu 381 Introducción
Más detallesParalelismo _Arquitectura de Computadoras IS603
Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,
Más detallesAbelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 00, Australia Autor principal del curso de 00 a 0 Iria Estévez Ayres Damaris Fuentes Lorenzo
Más detallesTEMA 2: PROGRAMACIÓN PARALELA (I)
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua
Más detallesObjetos y memoria dinámica
Objetos memoria dinámica 1. Punteros a objetos 2. Vectores dinámicos de objetos 3. Uso de objetos dinámicos 4. Atributos dinámicos 5. Creación de objetos con atributos dinámicos 6. Destrucción de objetos
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesIndique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta.
LENGUAJES DE PROGRAMACIÓN INSTRUCCIONES Por favor, entregue esta primera hoja de enunciado junto con el examen. Dispone de 2 horas para realizar el examen. MATERIAL PERMITIDO: Ninguno. Pregunta 1 (3 puntos)
Más detalles8- LEX-Expresiones regulares
8- LEX-Expresiones regulares Objetivos: Utilizar la herramienta KEX para trabajar con expresiones regulares Recursos: Maquina virtual Linux distribución Bodhi LXterminal y FLEX Introducción Flex le permite
Más detalles1. Funcionamiento de lex
El generador de analizadores léxicos lex. Teoría de Autómatas y lenguajes formales Federico Simmross Wattenberg (fedesim@infor.uva.es) Universidad de Valladolid Una vez visto cómo las expresiones regulares
Más detalles1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv
Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos
Más detallesTaller de Programación Paralela
Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 17, 2008 Motivación Programar aplicaciones paralelas no es una tarea trivial. Paralelismo
Más detallesJosé Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES
José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES MÁSTER EN NUEVAS TECNOLOGÍAS EN INFORMÁTICA Diciembre 2010 Introducción Por qué utilizar Matlab paralelo? MATLAB es
Más detallesLaboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Más detallesPRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA
PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA El objetivo de la práctica es desarrollar un compilador utilizando las herramientas flex y bison y el lenguaje
Más detallesGranularidad y latencia
Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación
Más detallesINTRODUCCIÓN AL EMU8086.
Microprocesadores. Guía 1 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). INTRODUCCIÓN AL EMU8086. Objetivos
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesDobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Más detallesTema 05: Elementos de un programa en C
Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Más detallesProgramación I Teoría II.
Programación I Teoría II http://proguno.unsl.edu.ar proguno@unsl.edu.ar MODULARIDAD FUNCIONES EN C Modularidad Principio para resolución de problemas: Dividir para reinar Modularidad Módulo Función Procedimiento
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Más detallesSistemas Complejos en Máquinas Paralelas
Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric
Más detallesINTRODUCCIÓN AL LENGUAJE C
INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática EUP ULPGC Jose Torres 1 de 36 Historia de C Precursores: muchas ideas provienen de BCPL (Martin Richards, 1967) y de B (Ken Thompson, 1970) C fue diseñado
Más detallesProgramación Concurrente Recopilación de teoría referente a la materia
UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a
Más detallesPUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
Más detallesPARADIGMA y LENGUAJES DE PROGRAMACIÓN
CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre
Más detallesAlgoritmos y Programación I
Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.
Más detallesLa secuencia de referencias a páginas para el proceso B es:
SISTEMAS OPERATIVOS (Código: 71902048) Enero 2017 Material permitido: Solo calculadora no programable Tiempo: 2 horas N1 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba
Más detallesProgramación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Más detallesClase Práctica Administración de Memoria en C. Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur
Clase Práctica Administración de Memoria en C Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Copyright Copyrigth 2018 Ing. Federico Joaquín. Las presentes transparencias constituyen una guía
Más detallesProgramación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional
Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional Programming Language Popularity: The TCP Index for December, 2012 La noción de clase en C++ C++ fue
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesConceptos Básicos. Programación
Conceptos Básicos Programación Introducción Lenguaje. Código Máquina. Lenguajes de alto nivel. Criterios clasificación Nivel de abstracción. Propósito. Evolución histórica. Manera de ejecutarse. Paradigma
Más detallesApellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática
Apellidos: Nombre: Matrícula: Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Más detallesOracle Certified Associate, Java SE 8 Programmer
J A V A S E 8 Información del examen: Número de examen: 1Z0-808. Certificación Asociada: Oracle Certified Associate, Java SE 8 Programmer I Versión del producto: Java SE 8 Duración: 150 minutes Número
Más detallesCapítulo 3. Introducción a la programación. Continuar
Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver
Más detallesQuick Tutorial de C++ y CLion
Quick Tutorial de C++ y CLion Departamento de Computación, FCEyN, Universidad de Buenos Aires. 28 de Agosto de 2017 Bienvenidos al Laboratorio de Programación de Algoritmos y Estructura de Datos Equipo
Más detallesTema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Más detallesCruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania
Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania Violeta Un ensamblador es el programa que convierte un listado
Más detallesProgramación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Más detallesCilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011
Un entorno de programación paralela Tomás Muñoz Rodríguez < tomas.munoz@um.es > 17 de noviembre de 2011 Profesor: Domingo Jiménez Cánovas Asignatura: Metodología de la Programación Paralela Facultad de
Más detallesFUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )
FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función
Más detallesProgramación 1 Grado de Ingeniería Robótica
Programación 1 Grado de Ingeniería Robótica Tema 6: Datos estructurados Índice (sesión 11/11/2015): Arrays estáticos Cadenas de caracteres Funciones de la librería string.h Punteros Declaración de punteros
Más detallesSistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
Más detallesPráctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase
Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase 1. Ejecute el siguiente programa y diga que hace la función calcula: #include
Más detallesCurso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Más detalles