Apuntes, resúmenes, trabajos, exámenes y ejercicios de Informática de Universidad

OpenMP: Paralelización Simplificada para Sistemas de Memoria Compartida

Informática36,76 KB

¿Qué es OpenMP?

OpenMP (Open Multi-Processing) es una API que permite la expresión de programas paralelos portables, de memoria compartida, a partir de programas secuenciales, con independencia del lenguaje (actualmente, en C, C++ y Fortran).

  • A partir de la versión 4.0, OpenMP proporciona soporte para la explotación de sistemas híbridos o heterogéneos (CPU + GPU…).
  • Es un modelo de programación paralela, de paralelismo explícito (paralelización dirigida por el programador), de memoria compartida.

Aproximación OpenMP

  • La idea consiste en partir de un programa base secuencial.
  • En una fase posterior, asumiendo un modelo de memoria compartida, se anota el programa base secuencial, especificando aspectos de cómo, desde un punto de vista de
...
Continuar leyendo "OpenMP: Paralelización Simplificada para Sistemas de Memoria Compartida" »

Comprendiendo la Arquitectura TCP/IP: La Red de Redes

Informática3,77 KB

Internet no es un nuevo tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes muy distintas entre sí. Internet no es dependiente de la máquina ni del sistema operativo utilizado. De esta manera, podemos transmitir información entre un servidor Unix y un ordenador que utilice Windows 98, o entre plataformas completamente distintas como Macintosh, Alpha o Intel. Es más: entre una máquina y otra generalmente existirán redes distintas: redes Ethernet, redes Token Ring e incluso enlaces vía satélite.

Como vemos, está claro que no podemos utilizar ningún protocolo que dependa de una arquitectura en particular. Lo que estamos buscando es un método de interconexión general que sea válido para cualquier plataforma,...

Continuar leyendo "Comprendiendo la Arquitectura TCP/IP: La Red de Redes" »

Diccionario de Conceptos Esenciales de Algoritmos y Programación

Informática4,41 KB

Fundamentos de la Programación y Algoritmos

Conceptos Fundamentales

Lógica
Es la capacidad que tiene el ser humano para ordenar y reflexionar sobre ciertas ideas y pensamientos, con el fin de llegar a una conclusión o resolver un problema.
Problema
Es una situación de la vida real que nos afecta y para la cual buscamos la solución más óptima.
Preguntas Clave para la Solución de Problemas
Para resolver un problema, nos haremos dos preguntas clave:
  1. ¿Qué es lo que tengo?
  2. ¿Qué es lo que me piden?
Lenguaje de Programación
Conjunto de reglas o símbolos que nos permiten escribir instrucciones para que una computadora pueda ejecutarlas.
Algoritmo
Es la secuencia de pasos o instrucciones que nos permite llegar a la solución de un problema.
Programación
Es
...
Continuar leyendo "Diccionario de Conceptos Esenciales de Algoritmos y Programación" »

Tipos de Líneas de Transmisión, Señalización y Centrales en Redes Telefónicas

Informática5,32 KB

Tipos de Líneas de Transmisión en Redes Telefónicas

Líneas de Abonado (LA)

  • Características: Par de hilos de cobre (transmisión a 2 hilos) que conectan un teléfono a la red telefónica, en particular a una central de conmutación. El número de LA es igual al número de abonados. Se utilizan para transmisión de voz/datos en banda base (frecuencia de voz) y señalización de abonado, normalmente sin ningún dispositivo de amplificación. Longitudes típicas de 4 a 6 km.
  • Modo de Explotación: Uso exclusivo para el abonado.
  • Eficiencia de Uso: Poca eficiencia de uso.

Líneas de Enlace (LE) o Troncales

  • Características: Líneas que conectan entre sí centrales de conmutación. El número de LE es menor que el número de LA. Se usan para transmisión
...
Continuar leyendo "Tipos de Líneas de Transmisión, Señalización y Centrales en Redes Telefónicas" »

Fundamentos Avanzados C++: Herencia, Sobrecarga de Operadores, Plantillas y Gestión de Memoria

Informática6,33 KB

1. Clases, Herencia y Atributos de Objetos

Sea la siguiente definición de clases:

Definición de Clases

class C1 {
protected:
    int x1, x2;
public:
    C1() { x1 = 5; x2 = 6; }
    C1(int x3) { x1 = x3; x2 = 2 * x3; }
};

class C2 : public C1 {
public:
    C2() { x2 = 7; }
    C2(int x4) : C1(x4 + 8) {
        x1 = x4 - 2;
    }
};

class C3 : public C2 {
public:
    int x5;
public:
    C3() { x5 = 9; }
    C3(int x6) : C2(x6 + 10) {
        x5 = x6 + 3;
    }
};

Y sea la siguiente declaración de objetos:

Declaración de Objetos

C1 obj1; C1 obj2(3); C2 obj3; C2 obj4(2); C3 obj5; C3 obj6(1);

Indica los valores de TODOS los atributos de los objetos:

Valores de los Atributos de los Objetos

  1. Atributos de obj1: x1 = 5, x2 = 6
  2. Atributos de obj2: x1 =
...
Continuar leyendo "Fundamentos Avanzados C++: Herencia, Sobrecarga de Operadores, Plantillas y Gestión de Memoria" »

Evolución del Modelado de Yacimientos: De Modelos Físicos a la Simulación Digital

Informática4,86 KB

Historia del Modelado de Yacimientos

Propósito

  • Presentar una breve descripción de la historia del modelado de reservorios.
  • Mostrar la evolución de la potencia de cálculo desde la década de 1950 hasta el presente.
  • Discutir sobre el futuro de la simulación de yacimientos.

1. Introducción

El modelado de reservorios, utilizando modelos físicos, se inició en la década de 1930. La simulación de yacimientos usando modelos computacionales comenzó en la década de 1950. El avance de la simulación de yacimientos ha sido esencialmente paralelo al de las computadoras.

2. Modelos Físicos (1930 - 1960)

Los modelos físicos fueron utilizados para estudiar los mecanismos de flujo de fluidos para los que no existía una solución matemática obvia, tales...

Continuar leyendo "Evolución del Modelado de Yacimientos: De Modelos Físicos a la Simulación Digital" »

Herramientas Esenciales para la Mejora de la Calidad y Planificación de Proyectos

Informática3,58 KB

Herramientas para la Mejora de la Calidad y Planificación de Proyectos

4- Porqués

Aunque la herramienta de los "porqués" es muy simple, es efectiva. Puede ser clave para determinar la **causa raíz** de un problema, al enfocarse en el proceso más que en las personas.

Diagramas de Flujo

Los diagramas de flujo son representaciones gráficas de la secuencia o relaciones lógicas de los pasos de un proceso. Con dicho diagrama se facilita visualizar el sistema completo, identificar los **puntos problemáticos potenciales** y localizar las actividades de control.

Diagrama de Afinidad

Esta herramienta se emplea normalmente cuando se tiene una gran cantidad de información proveniente de distintas fuentes y se quiere realizar un análisis de los datos...

Continuar leyendo "Herramientas Esenciales para la Mejora de la Calidad y Planificación de Proyectos" »

Sistemas de Apoyo a Decisiones en Mercadotecnia

Informática2,71 KB

Estos sistemas se utilizan cuando el gerente tiene un enorme volumen de datos, lo que dificulta identificarlos, analizarlos y utilizarlos en la organización. Algunos sistemas de apoyo son: de reporte y consulta, modelos analíticos de pronósticos, simulación y optimización, apoyo ejecutivo y de decisiones grupales.

Características

  • Incorporación de modelos.
  • Suministro de información a la alta dirección en apoyo a decisiones no estructuradas.
  • Suministro a los usuarios de lenguajes potentes para la resolución de problemas.

Componentes

  • Datos internos y externos.
  • Instrumentos de apoyo.

1. Sistemas de Reporte y Consulta

Ofrecen la capacidad para inspeccionar expedientes de la compañía acerca de los eventos ocurridos.

Tipos de Reportes

  • Informes de
...
Continuar leyendo "Sistemas de Apoyo a Decisiones en Mercadotecnia" »

Fundamentos del Sistema Operativo: Arquitectura, Funciones y Tipos

Informática5,38 KB

El Sistema Operativo: Fundamentos y Componentes Esenciales

El Sistema Operativo (SO), también conocido como software de sistema, es un programa o conjunto de programas fundamentales que se encargan de administrar, gestionar y proteger los recursos de hardware de un computador, ocultando su complejidad al usuario final. Su función principal es facilitar el uso del computador y proporcionar un entorno eficiente para la ejecución de aplicaciones.

Funciones Clave de un Sistema Operativo

  • Facilita el uso del computador.
  • Gestiona y asigna recursos de hardware (CPU, memoria, dispositivos de E/S).
  • Gestiona y mantiene los archivos en dispositivos de memoria masiva.
  • Proporciona un entorno de ejecución para las aplicaciones.
  • Protege los datos y los programas
...
Continuar leyendo "Fundamentos del Sistema Operativo: Arquitectura, Funciones y Tipos" »

Fundamentos de la Programación Orientada a Objetos (POO)

Informática4,21 KB

Objeto: Conjunto complejo de datos que poseen estructura, entidad provista de propiedades y comportamiento (funcionalidad, métodos) que, consecuentemente, reaccionan a eventos. Un objeto no es un dato simple, cada objeto no es un ente aislado, está vinculado y tiene una organización jerárquica o de otro tipo.

Clase: Colección de objetos similares que determina la estructura de los datos y las operaciones asociadas a este tipo.

Abstracción: Proceso mental para aislar mentalmente las cualidades esenciales de un objeto. La abstracción es la capacidad mental superior que tiene todo ser humano para poder deducir la esencia de un concepto o situación determinada.

Pasos de la Abstracción:

  1. Identificar objetos.
  2. Definir propiedades y métodos.
  3. Clasificar
...
Continuar leyendo "Fundamentos de la Programación Orientada a Objetos (POO)" »