Introducción a Computación



Documentos relacionados
Introducción HPC. Curso: Modelización y simulación matemática de sistemas. Esteban E. Mocskos (emocskos@dc.uba.ar) Escuela Complutense Latinoamericana

Organización de Computadoras. Turno Recursantes Clase 8

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

PROGRAMACIÓN ORIENTADA A OBJETOS

Arquitectura de Computadores

MÓDULO 1: Sistemas de Cómputo

Capitulo V Administración de memoria

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Figura 4.1 Clasificación de los lenguajes de bases de datos

Conclusiones. Particionado Consciente de los Datos

INTRODUCCIÓN. Definiciones ORDENADOR (RAE 1992): En esta asignatura computador y ordenador tiene el mismo significado

Unidad III El lenguaje de programación C

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Capítulo 5. Cliente-Servidor.

4. Programación Paralela

Licenciatura en Computación

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

LA REVOLUCIÓN DE LOS SISTEMAS DE INFORMACIÓN (S.I.) Introducción PORQUÉ SISTEMAS DE INFORMACIÓN? El Competitivo Entorno de los Negocios

Sistemas de Operación II

Técnico de Soporte Informático TEMA 02 NUEVAS TECNOLOG AS

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

Cada computadora conectada a la red suele recibir el nombre de estación de trabajo o nodo de la red.

Act 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador

Entorno de Ejecución del Procesador Intel Pentium

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Proyecto de Digitalización del Archivo Histórico de las Compañias

Figura 1.4. Elementos que integran a la Tecnología de Información.

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

MÓDULO ACTIVO FIJO. Versión 3.0 CAPACITACION USUARIOS FINALES SIGI

Solución de telefonía para empresas TL Presentación de producto. Telefonía IP

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.

PLAN DE MÉTRICAS EN OCHO PASOS

Capítulo 9 Redes y Teleinformática 9.1 Introducción

Arquitectura de sistema de alta disponibilidad

M.T.I. Arturo López Saldiña

Instituto Tecnológico de Celaya

Plataformas de soporte computacional: arquitecturas avanzadas,

DISEÑO DE FUNCIONES (TRATAMIENTOS)

ESQUEMAS DE SISTEMAS VOIP CON ALTA DISPONIBILIDAD Y ALTO RENDIMIENTO

Utilización del sistema operativo GNU/ Linux en las netbooks

Redes I Clase # 3. Licda. Consuelo E. Sandoval

Clase 20: Arquitectura Von Neuman

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

Por qué es importante la planificación?

TALLER DE CONOCIMIENTOS APRENDICES JORGE LEONARDO MAZA CARLOS DAVID ZAMBRANO JOSE G. RODRIGUEZ PROFESOR RONALD MARTELO

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Caso práctico de Cuadro de Mando con Tablas Dinámicas

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

Las 5 S herramientas básicas de mejora de la calidad de vida

Matemática de redes Representación binaria de datos Bits y bytes

TRABAJO COOPERATIVO EN ROBOTS

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking

CONTROL DE ASISTENCIA DE PERSONAL

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

by Tim Tran:

Partes, módulos y aplicaciones de un Controlador de Procesos

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

Informática I para Bachillerato

Tema 2. Diseño del repertorio de instrucciones

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

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

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Computación de Alta Performance Curso 2009 TOLERANCIA A FALLOS COMPUTACIÓN DE ALTA PERFORMANCE 2009 TOLERANCIA A FALLOS

Motores de Búsqueda Web Tarea Tema 2

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

GERENCIA DE INTEGRACIÓN

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

CAPITULO I INTRODUCCION. Conforme la informática avanza, las imágenes se han convertido en un área muy

Para obtener una cuenta de padre

Generalidades Computacionales

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Sistemas de Operación II

Soporte lógico de computadoras

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Software Computacional y su clasificación

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

2.1 Funcionamiento del MPLS

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Organizacion del Computador

4. SISTEMAS DE COSTOS P OR PROCESOS

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

De acuerdo con la diferente naturaleza de las operaciones, esta política diferenciará fundamentalmente entre dos tipos de operaciones:

1 La Resolución de Problemas utilizando la Computadora

Organización Básica de un Computador y Lenguaje de Máquina

MODELOS DE RECUPERACION

Programación Orientada a Objetos en Java

CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO

Fundamentos de la Programación

Transcripción:

Curso: Modelización y simulación matemática de sistemas Metodología para su implementación computacional Introducción a Computación Esteban E. Mocskos (emocskos@dc.uba.ar) Facultades de Ciencias Exactas y Naturales, UBA CONICET Escuela Complutense Latinoamericana E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 1 / 22

Conceptos - revisión Qué es una computadora? Modelo de von Neumann Se compone de cuatro partes principales: 1 Memoria 2 Unidad de Control 3 Unidad aritmética lógica 4 Componentes de entrada/salida (input/output) Memoria de acceso aleatoria de lectura y escritura para instrucciones y datos. Los datos son información almacenada que es usada e interpretada por el programa (o programador). Los programas son datos codificados que indican a la computadora qué tiene que hacer. La unidad de control consigue las instrucciones y datos de la memoria, decodifica las instrucciones y luego coordina las distintas tareas para que las operaciones se realicen. La unidad aritmética se encarga de las operaciones básicas entre números enteros Los componentes de entrada/salida son la comunicación con el universo de los humanos E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 3 / 22

Conceptos - revisión Qué es una computadora? Ciclo de instrucción Una computadora vive realizando el siguiente ciclo: 1 Fetch: conseguir la siguiente instrucción a ejecutar. 2 Decode: a partir de un chorizo de bits (0110 1110 1100 1100) adivinar de qué instrucción se trata. 3 Memory fetch: de ser necesario, se deberán conseguir los datos requeridos por la instrucción. 4 Execute: se ejecuta la instrucción. 5 Write back: si fuera necesario, se deberá almacenar en memoria el resultado de la instrucción. 6 y se vuelve a empezar... E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 4 / 22

Conceptos - revisión Memoria Accediendo a la memoria Ir a buscar datos a memoria no es algo tan sencillo... Latencia: es el tiempo que se tarda desde que se hace un pedido hasta que llega la primer parte a destino. Ancho de banda: es la velocidad de transferencia una vez que se superó la latencia inicial. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 5 / 22

Conceptos - revisión Memoria Jerarquía de memoria Si lo más rápido son los registros... Por qué no es todo registros? Y la razón principal para esto es... costo!!! E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 6 / 22

Conceptos - revisión Procesador trabajando Programa de ejemplo 1 l d r0, [ a ] 2 l d r1, [ b ] 3 add r2, r0, r1 ; r2 = r0 + r1 4 l d r3, [ c ] 5 mul r4, r2, r3 ; r4 = r2 * r3 6 l d r5, [ d ] 7 push r5 8 push r4 9 op f ; f ( r4, r5 ). The r e s u l t i s pushed. 10 pop r4 Fetch and Decode no presentan riesgos, se supone que se pueden ejecutar siempre que no estén ocupados. Ejemplo basado en http://www.moderngpu.com/intro/performance.html. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 7 / 22

Conceptos - revisión Procesador trabajando Seguimiento de juguete FETCH DECODE EXECUTE OP MEM WRITE BACK l d r0, [ a ] l d r1, [ b ] add r2, r0, r1 l d r3, [ c ] mul r4, r2, r3 l d r5, [ d ] push r5 push r4 op f pop r4 l d r0, [ a ] l d r1, [ b ] add r2, r0, r1 l d r3, [ c ] mul r4, r2, r3 l d r5, [ d ] push r5 push r4 op f pop r4 l d r0, [ a ] l d r1, [ b ] add r2, r0, r1 l d r3, [ c ] mul r4, r2, r3 l d r5, [ d ] push r5 push r4 op f pop r4 l d r0, [ a ] l d r1, [ b ] add r2, r0, r1 l d r3, [ c ] mul r4, r2, r3 l d r5, [ d ] push r5 push r4 op f pop r4 l d r0, [ a ] l d r1, [ b ] add r2, r0, r1 l d r3, [ c ] mul r4, r2, r3 l d r5, [ d ] push r5 push r4 op f pop r4 E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 8 / 22

Arquitecturas Un solo procesador Vectorial Se basa en tener un único procesador super-poderoso. La idea es aplicar la misma operación a muchos datos en un solo paso. El exponente más clásico es la Cray I, dominó el mercado durante los 80s. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 10 / 22

Arquitecturas Memoria compartida Memoria compartida acceso uniforme (UMA) A veces se las llama CC-UMA (Cache Coherent UMA). Las más conocidas son las máquinas tipo Symmetric Multiprocessor(SMP) Todos los procesadores son idénticos entre sí Acceso uniforme a toda la memoria y mismo tiempo de acceso para llegar a cualquier parte del mapa de memoria. La coherencia de cache (Cache coherency) significa que si un procesador actualiza el dato almacenado en la memoria, todos los procesadores se enteran del cambio. La coherencia de cache se implementa a nivel hardware. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 11 / 22

Arquitecturas Memoria compartida Memoria compartida acceso no uniforme (NUMA) A menudo se arman conectando dos o más SMPs Una SMP puede acceder directamente a la memoria de otra SMP No se tiene un tiempo de acceso uniforme a todas las partes de la memoria Acceder a través del link es considerablemente más lento. Si hubiera coherencia de cache, se las conoce como CC-NUMA(Cache Coherent NUMA) E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 12 / 22

Arquitecturas Memoria compartida Memoria compartida Ventajas: El espacio global de memoria le hace la vida fácil al programador. Compartir datos entre tareas es rápido y directo. Desventajas: Falta de escabalibilidad: agregar más procesadores puede incrementar geométricamente el tráfico en el camino memoria-procesador. Para el caso de sistemas con coherencia de cache, la complejidad de mantenerla también se incrementa geométricamente. Es responsabilidad del programador implementar la sincronización para asegurarse el acceso correcto a la memoria global. Costo: se vuelve cada vez más díficil y caro diseñar y producir máquinas con memoria compartida a medida que se aumenta la cantidad de procesadores. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 13 / 22

Arquitecturas Memoria distribuida Memoria distribuida: clusters Requiere una red de comunicación para conectar los nodos. Cada procesador tiene su propia memoria local. El espacio de memoria de un procesador no puede accederse desde otro directamente. No hay espacio global de memoria compartido entre todos. Cada procesador opera independientemente del resto: los cambios en su espacio de memoria no tienen efecto en el resto de los procesadores. No tiene sentido pensar en coherencia de cache. Cuando un procesador necesita acceder a datos que tiene otro, es tarea del programador usar explicítamente un mecanismo para transferir ese dato. La sincronización entre las tareas es completa responsabilidad del programador La infraestructura de red usada para interconectar el cluster varía desde un switch común(ethernet) hasta equipamiento ultra-específico(infiniband). E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 14 / 22

Arquitecturas Memoria distribuida Memoria distribuida Ventajas: La cantidad de memoria escala con el número de procesadores. Es posible incrementar el número de procesadores y el tamaño de la memoria proporcialmente. Cada procesador puede acceder rápidamente a su propia memoria local sin interferencias y sin el overhead que se incurre al tener que mantener la coherencia de cache. Relación costo-beneficio: se puede usar hardware común, conocido como off-the-shelf y obtener una performance muy razonable. Desventajas: El programador es responsable de muchos detalles (demasiados, dirían algunos) asociados con la comunicación de datos entre procesos. A veces resulta muy complicado adaptar código existente basado en memoria compartida a este arquitectura. El tiempo de acceso a los datos no es uniforme ( varía mucho!) E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 15 / 22

Arquitecturas Memoria distribuida Híbridas E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 16 / 22

Programando Qué es programar? Un algoritmo es una lista finita de intrucciones, consiste de: Instrucciones que indican qué hacer. Valores con los cuales se trabaja (parámetros). Variables a las cuales se les asigna un valor y a las cuales se le realizan operaciones (i.e. sumar, restar). Los programa se escriben en un lenguaje que puede convertirse en algo que una computadora puede entender. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 18 / 22

Programando Lenguajes de algo nivel Se refiere a las construcciones que son relativamente fáciles de entender por un humano (y no a que juegan en Primera A o en el Barcelona!) Ejemplos de lenguajes (no se pueden imaginar la cantidad de lenguajes que existen o existieron!): Perl, Matlab, Perl, Java, C, C++, C#, Visual Basic, Python, Scheme, Lisp, Pascal, Fortran y la lista sigue! Hay algunos que han sido creados especificamente para cierto nicho de aplicación, haciendo más fácil la vida para aquellos que lo necesitan (por ejemplo Fortran para simulación). Este tipo de lenguajes es independiente de la máquina o arquitectura en la cual funciona (en realidad, en algunos casos se usan trucos específicos para obtener mejoras en el desempeño). Desde el punto de vista teórico, lo que se puede computar con cualquier lenguaje de estos es lo mismo. Sin embargo, las computadoras no entienden este tipo de lenguajes directamente. E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 19 / 22

Programando Cómo se logra ejecutar un programa? Los lenguajes de alto nivel necesitan ser traducidos a lo que una computadora entiende: lenguaje de máquina. Para esto, hay dos opciones: 1 Compilador: es un programa que toma código fuente de alto nivel y lo convierte en lenguaje de máquina. 2 Intérprete: es un programa que convierte cada instrucción en lenguaje de alto nivel a una serie de instrucciones de máquina. Esto hace falta porque una computadora (i.e. el procesador) solo puede procesar lenguaje de máquina: El lenguaje de máquina consiste en un conjunto de instrucciones que un procesador puede ejecutar directamente. Cada instrucción se codifica como un patrón de 1 s y 0 s que el procesador (en realidad, el ingeniero que lo diseña) vincula con la operación a realizar (por ejemplo: add, substract, read, store, etc.) E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 20 / 22

Terminando Conclusiones En este curso vamos a usar Matlab. Es una lenguaje interpretado (Hay un programa traduciendo cada comando que se introduce a un montón de operaciones en lenguaje de máquina). Para aprender Matlab (o cualquier otro lenguaje de programación), hay que perder tiempo. Hay mucha información en Internet, pero hasta que uno no se ensucia los dedos, la cosa no avanza. Aprovechen a los docentes para hacernos consultas y todo aquello que nunca se atrevieron a preguntar, es un equipo docente en el que cada uno tiene una especialización particular, no se pierdan la oportunidad! E. Mocskos (UBA CONICET) Modelización y simulación matemática de sistemas Escuela Complutense Latinoamericana 22 / 22