Conceptos Básicos de Programación Paralela, Study notes of Java Programming

progrmacion ejercios en concurrente java

Typology: Study notes

2019/2020

Uploaded on 09/13/2020

ivan-harleking-delareigres-mccartne
ivan-harleking-delareigres-mccartne 🇲🇨

5

(1)

6 documents

1 / 19

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CONCEPTOS BÁSICOS DE
PROGRAMACIÓN PARALELA
Alumna: Reyes Hernandez Michelle Vianey
grupo:110902
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Partial preview of the text

Download Conceptos Básicos de Programación Paralela and more Study notes Java Programming in PDF only on Docsity!

CONCEPTOS BÁSICOS DE

PROGRAMACIÓN PARALELA

Alumna: Reyes Hernandez Michelle Vianey

grupo:

Es un modelo para escribir programas paralelos los cuales pueden ser compilados y ejecutados. El valor de un modelo de programación puede ser juzgado por su generalidad (Si las soluciones ofrecidas son óptimas a comparación de diferentes arquitecturas o soluciones existentes), y su rendimiento (Eficiencia, precisión o velocidad de la ejecución).

Programación paralela

Scheduling

Una lista de procesos, que

monitoriza todos los hilos

que se están ejecutando en todos los programas y decide cuales deben

ejecutarse y cuales deben

encontrarse preparados para su ejecución.

Generalmente se considera cualquier combinación de

tiempo de cálculo excesivo o indirecto, memoria, ancho

de banda u otros recursos que se requieren para alcanzar un objetivo particular.

Overhead

Es una arquitectura de computadoras basada en la

descrita en 1945 por el matemático y físico John von

Neumann y otros, en el primer borrador de un

informe sobre el EDVAC.

Arquitectura Von

Neumann

Es una clasificación de arquitecturas de

computadores propuesta por Michael J. Flynn en

Taxonomía de Flynn

Una instrucción, un dato (SISD)Artículo principal: SISDComputador secuencial que no explota el

paralelismo en las instrucciones ni en flujos de datos. Es la

Arquitectura Von-Neumann. Un único procesador ejecuta un solo flujo de instrucciones para operar datos en una única memoria. Se ejecuta una única instrucción y un dato en cada ciclo de reloj. Puede utilizar técnicas de segmentación o de pipelining. Ejemplos de arquitecturas SISD son las máquinas con uni-procesador o monoprocesador tradicionales como el PC o los antiguos mainframe.

Múltiples instrucciones, un dato (MISD)Artículo principal: MISDPoco común debido al hecho de que la efectividad de los múltiples flujos de instrucciones suele precisar de múltiples flujos de datos. Sin embargo, este tipo se usa en situaciones de paralelismo redundante, como por ejemplo en navegación aérea, donde se necesitan varios sistemas de respaldo en caso de que uno falle. También se han propuesto algunas arquitecturas teóricas que hacen uso de MISD, pero ninguna llegó a producirse en masa. Algunos autores consideran que las arquitecturas vectoriales supersegmentadas o vectorial escalar forman parte de este modelo ya que en un momento dado se pueden estar manipulando un dato (el vector) por varias instrucciones, no obstante no existe consenso al respecto.

Múltiples instrucciones, múltiples datos (MIMD)Artículo principal: MIMDVarios procesadores autónomos que ejecutan simultáneamente instrucciones diferentes sobre datos diferentes. Los sistemas distribuidos suelen clasificarse como arquitecturas MIMD; bien sea explotando un único

espacio compartido de memoria, o uno distribuido.

Es un dispositivo de hardware o software que se pone al frente de un conjunto de servidores que atienden una aplicación y, tal como su nombre lo

indica, asigna o balancea las solicitudes que llegan

de los clientes a los servidores usando algún algoritmo

Balanceador de carga

Framework Fork/join

Fue diseñado para la ejecución de tareas que pueden dividirse en otras subtareas más pequeñas, ejecutándose estas en paralelo y combinando posteriormente sus resultados para obtener el resultado de la tarea única. Las subtareas deberán ser independientes unas de otras, y no contendrán estado.Este framework realiza la paralelización de tareas de forma recursiva, aplicando el principio Divide y Vencerás. Existirá un umbral bajo el cual una tarea será indivisible, definido por el tamaño de la misma. Una vez el tamaño de las subtareas llegue al umbral, el rendimiento de las mismas disminuirá en caso de seguir dividiéndolas.

Bibliografía

http://formella.webs.uvigo.es/doc/cdg11/arquitec.pdf https://jarroba.com/map-en-java-con-ejemplos/ https://www.arquitecturajava.com/java-object-size-y-jvm-overhead/ https://es.wikipedia.org/wiki/Arquitectura_de_Von_Neumann https://es.wikipedia.org/wiki/Taxonom%C3%ADa_de_Flynn#:~:text=Las%20cuatro% clasificaciones%20definidas%20por,instrucci%C3%B3n%2C%20un%20dato%20(SISD) &text=Un%20%C3%BAnico%20procesador%20ejecuta%20un,datos%20en%20una% 0%C3%BAnica%20memoria. https://es.wikipedia.org/wiki/Balanceador_de_carga https://www.logicbig.com/tutorials/core-java-tutorial/java-multi-threading/fork-and- join.html