Está en la página 1de 8

Sobre el papel de la programación paralela en los nuevos planes de

estudios de informática
Francisco Almeida Domingo Giménez José Miguel Mantas Antonio M. Vidal

Departamento de Departamento de Departamento de Departamento de

Estadística, I. O. Informática Lenguajes y Sistemas Sistemas Informáticos

y Computación y Sistemas Informáticos y Computación

Univ. La Laguna Univ. Murcia Univ. Granada Univ. Pol. Valencia

Camino de la Rua, 57 Campus de Espinardo Daniel Saucedo s/n Camino de Vera s/n

38208 La Laguna 30071 Murcia 18071 Granada 46022 Valencia

falmeida@ull.es domingo@um.es jmmantas@ugr.es avidal@dsic.upv.es

Resumen bajaban. Para la resolución eciente de estos


problemas es necesaria la utilización de entor-
La difusión reciente de los sistemas paralelos nos paralelos, y también la optimización o el
hace que la programación paralela haya adqui- rediseño de los algoritmos que se implementan
rido gran importancia, y dentro del proceso de para resolver los problemas. En cuanto a entor-
reforma de los planes de estudios deberíamos nos de programación se han venido generan-
plantearnos darle la importancia que realmen- do herramientas que facilitan la programación
te tiene. Los ingenieros en informática traba- en los distintos sistemas: Poxis threads (pth-
jan con estos sistemas y tienen que desarro- reads) [6], OpenMP [7], MPI [9]... En lo que
llar software para ellos, por lo que no puede se reere a la importancia del estudio y diseño
aducirse que es un tipo de programación com- de algoritmos paralelos basta con comprobar
plejo para no incluirlo o relegarlo de los estu- que la mayoría de los libros de introducción
dios. Además, para obtener las máximas pres- a la programación paralela dedican una parte
taciones de estos sistemas es necesario estudiar importante al estudio de técnicas de progra-
análisis y diseño de algoritmos paralelos. Es- mación y diseño de algoritmos [10, 4, 8, 1]. Es
te trabajo pretende motivar la discusión sobre también común observar en los últimos tiem-
cómo incluir los contenidos de programación y pos, que en libros de algorítmica secuencial se
algoritmos paralelos. En nuestra opinión una introducen algunos temas relacionados con la
buena opción sería incluir la programación pa- algorítmica y la programación paralela [2, 5].
ralela como parte de asignaturas de programa- Más recientemente, con la agregación de va-
ción, junto con alguna asignatura especíca de rios ordenadores para formar redes de proce-
paralelismo. sadores se consiguió que la programación pa-
ralela se popularizara entre los grupos cientí-
1. Motivación cos que tenían en sus propios laboratorios un
sistema computacional con el que resolver sus
Tradicionalmente la programación paralela se problemas de dimensión más reducida, y uti-
ha venido utilizando para la resolución de pro- lizaban los supercomputadores para abordar
blemas con alto coste computacional [3] que es- problemas de mayor dimensión. La aparición
taban en la frontera de los problemas cientí- de estándares de programación paralela facili-
cos abordables por sistemas computacionales. tó el desarrollo de programas portables que se
Esta programación se realizaba por personal podían utilizar tanto en las redes de ordena-
especializado, bien informáticos o cientícos dores como en los supercomputadores.
que aprendían programación paralela para re- En los últimos años, la aparición de los pro-
solver los problemas cientícos en los que tra- cesadores multinúcleo ha puesto al alcance del
público en general los sistemas paralelos. Hoy posibilidades de futuro, revisando sus aspectos
en día es normal disponer de un portátil bipro- positivos y negativos. El trabajo proviene de
cesador o de un ordenador de sobremesa con la colaboración continua de los autores duran-
cuatro u ocho núcleos, y la tendencia es que el te los últimos años. Trabajan en universidades
número de núcleos aumente. distintas y en investigación en programación
En la actualidad nos encontramos, por tan- paralela pero en campos variados (esquemas
to, con la posibilidad de utilizar el paralelis- algorítmicos paralelos, entornos de programa-
mo a varios niveles: supercomputadores, redes ción paralela, computación heterogénea, álge-
de ordenadores, sistemas distribuidos, proce- bra lineal numérica paralela, aplicaciones de la
sadores multinúcleo, procesadores grácos, ví- programación paralela...), lo que hace que no
deo consolas, cloud computing... se presente un enfoque personal, sino que el
Esta popularización de los sistemas parale- trabajo se ha realizado a partir de una visión
los debería ir acompañada de una difusión si- múltiple.
milar de las técnicas de programación parale-
la, de forma que los desarrolladores naturales 2. La programación paralela y los
de aplicaciones informáticas (los ingenieros in- algoritmos paralelos en los actua-
formáticos) para las plataformas de cómputo les planes de estudios
actuales y futuras estuvieran en condiciones
de hacer un buen uso de los recursos compu- La enseñanza de algoritmos paralelos requie-
tacionales a su alcance. Para esto es necesario re de conocimientos previos de sistemas para-
introducir en los estudios de informática los lelos y de programación paralela, incluyendo
conocimientos básicos de programación para- entornos y herramientas de programación. Es-
lela, pero también del análisis y diseño de al- tas materias se encuentran en mayor o menor
goritmos paralelos. medida en todos los libros de introducción a
Mientras que el estudio de técnicas algorít- la programación paralela. Por tanto, analiza-
micas secuenciales está más o menos unicado remos la situación en los planes de estudios
(en todos los planes de estudios se incluye, en actuales de las siguientes materias:
un curso u otro y con mayor o menor profundi-
dad, el análisis de algoritmos secuenciales y su • Sistemas computacionales paralelos, ar-
diseño, ya sea con un enfoque basado en pro- quitecturas paralelas, paralelismo de bajo
blemas o en paradigmas) no ocurre lo mismo nivel.
con las técnicas algorítmicas paralelas. Desde • Nociones básicas de programación para-
nuestro punto de vista, teniendo en cuenta la lela, programación concurrente y progra-
importancia y la amplia difusión actual de los mación en sistemas distribuidos.
sistemas paralelos, que previsiblemente se irá
ampliando más en el futuro, deberían incluirse • Lenguajes,entornos y herramientas
conceptos de algorítmica paralela en los nue- de programación paralela, pthreads,
vos planes de estudio de informática, y debe- OpenMP, MPI.
ría hacerse un esfuerzo por unicar posturas
en cuanto a la docencia en este tema. • Análisis de algoritmos paralelos.
Con este trabajo se pretende propiciar el de- • Diseño de programas paralelos, esquemas
bate en este sentido. Para ello, se empieza ana- algorítmicos paralelos.
lizando la situación actual de la enseñanza de
la programación paralela y los algoritmos pa- No todos estos temas se tratan y se deben
ralelos en los actuales planes de estudios, cen- tratar con la misma amplitud. Por ejemplo,
trándonos principalmente en la situación en las las nociones básicas de programación paralela
universidades en que trabajamos los autores y las herramientas de programación se estudia-
(Granada, La Laguna, Murcia y Politécnica de rían conjuntamente, y el análisis y diseño de
Valencia). A continuación se analizan distintas algoritmos deberían formar una unidad. Como
• PROGRAMACIÓN CONCURRENTE:
En los planes de estudios suele haber una
o dos asignaturas obligatorias con conte-
nidos de programación concurrente en se-
gundo o tercer curso (CON1), en ocasio-
nes asociadas a materias de sistemas ope-
rativos. Estas asignaturas tienen normal-
mente los contenidos tradicionales de la
programación concurrente (deadlock, con-
dición de carrera, abrazo mortal, semáfo-
ros...) y algunos conceptos de herramien-
tas de programación paralela, como pue-
den ser pthreads y programación con es-
pacio de direcciones compartido, llamadas
remotas, paso de mensajes...
Figura 1: Distribución aproximada en los actuales

planes de estudios de informática de contenidos

relacionados con la programación paralela Suele haber otras asignaturas optativas


(con2) relacionadas con temas de progra-
mación paralela, como pueden ser: siste-
en este trabajo nos centramos principalmente mas de tiempo real, programación distri-
en la programación y algoritmos paralelos, he- buida...
mos dividido estos temas en más apartados.
Un esquema (aproximado) de la situación • HERRAMIENTAS DE PROGRAMA-
actual en los distintos temas se muestra en la CIÓN PARALELA:
gura 1, y a continuación comentamos la si-
tuación en cada uno de ellos: Como hemos comentado, en CON1 se suele
incluir el estudio de alguna herramienta
• ARQUITECTURAS PARALELAS: para programación paralela, mayoritaria-
Desde los primeros cursos de las ingenie- mente pthreads, pero también algunas ve-
rías informáticas se estudian temas de es- ces las herramientas que ofrecen lengua-
tructura, tecnología y arquitectura de or- jes tradicionales para gestionar procesos.
denadores (llamaremos a estas asignatu- Llamamos a estos contenidos incluidos en
ras ARQ1). En estos cursos iniciales se in- asignaturas de primer ciclo como HER1.
cluyen temas de paralelismo intraprocesa-
También en las asignaturas de segundo
dor y de bajo nivel (segmentación, encau-
ciclo se suele incluir el estudio de herra-
zamiento, replicación de unidades, módu-
mientas, quizás en las prácticas de la asig-
los de memoria, especulación...) En se-
natura. Este estudio no está tan genera-
gundo ciclo hay una asignatura troncal
lizado como en las asignaturas básicas de
de arquitectura de ordenadores (la llama-
programación paralela, y algunas veces se
mos ARQ2), con contenidos de arquitectu-
incluye en asignaturas optativas. Por esto
ras paralelas. Adicionalmente, dependien-
llamamos a estos contenidos de segundo
do de la universidad, puede haber alguna
ciclo her2.
asignatura más obligatoria, o una serie de
asignaturas optativas que estudian temas En algunos casos se incluyen, normalmen-
de arquitecturas y sistemas paralelos (las te en segundo ciclo, asignaturas optativas
llamamos arq3, en minúscula para indicar de herramientas de programación parale-
que corresponden a contenidos no obliga- la, o de programación en algún tipo de sis-
torios en todas las universidades): proce- tema particular (supercomputadores, pa-
sadores superescalares y vectoriales, mul- so de mensajes, memoria compartida...) A
tiprocesadores, VLSI, redes de conexión... estas asignaturas nos referimos con her3.
• ANÁLISIS DE ALGORITMOS PARA- esquemas algorítmicos sin incluir en la mayo-
LELOS: ría de los casos referencias al paralelismo.
No es habitual encontrar contenidos obli- Además, el estudio del paralelismo se suele
gatorios de análisis de algoritmos parale- realizar dentro de asignaturas de arquitectu-
los, aunque sí de algoritmos secuenciales. ras de ordenadores o de sistemas operativos,
En CON1 se puede tener en cuenta de ma- con lo que la visión de alto nivel propia de
nera intuitiva temas de prestación de los la algorítmica puede perderse en gran medida.
programas, pero no se suele realizar un También suele haber alguna asignatura especí-
estudio sistemático de este tema. ca de programación concurrente, pero aislada
de las restantes asignaturas de programación y
Es usual que en segundo ciclo se incluya centrada en conceptos básicos, por lo que mu-
alguna asignatura de programación para- chas veces tiene una orientación de sistemas
lela (ana1) donde se estudia el análisis de operativos más que algorítmica.
algoritmos paralelos, o que se tengan en La prolongación de la situación actual cree-
cuenta aspectos de prestaciones de pro- mos que daría lugar a formar titulados con
gramas en asignaturas como her2 y her3 conocimientos alejados de los necesarios para
(nos referimos a estos contenidos estudia- trabajar de forma adecuada en el desarrollo de
dos en asignaturas no propiamente de pro- aplicaciones para los sistemas computaciona-
gramación paralela como ana2). les actuales, por lo que se plantea la necesidad
• DISEÑO DE ALGORITMOS PARALE- de unicar posturas en cuanto a los conoci-
LOS: mientos de algoritmos paralelos que deberían
incluirse en los próximos planes de estudios de
El diseño de algoritmos paralelos se pue- informática. Dado que la organización futura
de estudiar junto con el análisis de los al- de los planes de estudios (duración, organiza-
goritmos (ana1). Llamamos a estos con- ción, continuidad de grado y máster...) no está
tenidos dis1. Pero también se puede es- clara todavía, es imposible dar una propuesta
tudiar metodología de programación pa- denitiva. Por esto, en la siguiente sección se
ralela sin entrar directamente en el estu- analizan distintas posibilidades sobre las que
dio sistemático de esquemas algorítmicos. debatir.
En las asignaturas no dedicadas directa-
mente a la programación paralela (her2 y
her3) se puede abordar el diseño de pro- 3. La programación paralela y los
gramas paralelos desde este punto de vis- algoritmos paralelos en los futu-
ta, quizás analizando metodologías para ros planes de estudios
sistemas particulares que se estudian en
esas asignaturas. Llamamos a estos con- El análisis de los actuales planes de estudios
tenidos más de metodología de la progra- nos lleva a formularnos la siguiente pregunta:
mación como dis2. ¾Está justicada en la situación actual la di-
ferencia en la forma de enfocar el paralelismo
Como vemos, la situación en arquitecturas en asignaturas de arquitectura y de programa-
paralelas y en programación y algoritmos pa- ción? Desde nuestro punto de vista, teniendo
ralelos es totalmente distinta. En arquitectura en cuenta la amplia difusión actual de los sis-
se incluyen en los distintos cursos y asigna- temas paralelos, el enfoque de la docencia de
turas referencias a paralelismo, que será intra- la programación paralela se debería aproximar
procesador y de bajo nivel en los primeros cur- al enfoque actual en las asignaturas de arqui-
sos, y en cursos superiores temas de estructu- tecturas, incluyendo referencias al paralelismo
ra de sistemas paralelos. La situación en pro- en diferentes niveles de los estudios.
gramación es distinta, encontrándonos con que El conocimiento de las arquitecturas parale-
normalmente se estudian las nociones básicas las es conveniente para poder desarrollar apli-
de programación, las estructuras de datos y los caciones paralelas ecientes, pero no es im-
prescindible su conocimiento para el estudio de los nuevos planes. Así, en el grado nos centra-
herramientas, metodologías y algoritmos para- ríamos en conceptos básicos (programación y
lelos, que pueden ser estudiados de modo abs- algoritmos secuenciales), y los conceptos avan-
tracto (usando modelos de arquitecturas para- zados (la programación paralela) se dejaría pa-
lelas) y al mismo tiempo que la arquitectura ra cursos avanzados. Como ya hemos comenta-
de ordenadores, consiguiéndose con el estudio do, esta postura no nos parece adecuada pues
de arquitecturas, algoritmos y lenguajes tener los sistemas paralelos son los sistemas estándar
una visión general de la programación parale- actuales, y por tanto los titulados de informá-
la. Existen modelos simplicados de arquitec- tica deberían tener conocimientos no sólo so-
turas paralelas que permiten desarrollar, usan- bre las arquitecturas paralelas, sino también
do herramientas y técnicas de análisis/diseño de la programación. Es verdad que normal-
estandarizadas, programas paralelos capaces mente en algunas asignaturas de arquitectura
de aprovechar de forma muy satisfactoria el se incluyen conceptos básicos de programación
potencial de la mayoría de arquitecturas para- paralela, pero entendemos que el estudio de la
lelas más difundidas. Por tanto, el aprendizaje programación debe realizarse con un enfoque
de estos conocimientos debería ser obligatorio abstracto, no centrado en la arquitectura sobre
para un ingeniero informático, dadas las carac- la que van a ejecutarse los programas. Esto,
terísticas de los actuales sistemas de cómputo que es válido y admitido para la programación
convencionales. secuencial, no es siempre admitido para la pa-
Por otro lado, los conceptos básicos de pro- ralela, y diculta su desarrollo.
gramación concurrente y de sistemas distribui- Hay que tener en cuenta también que si se
dos se suelen estudiar de una manera alejada equipara el grado con la Ingeniería Informática
de la programación paralela real, donde lo que se estarían lanzando al mercado profesionales
se pretende es reducir el tiempo de ejecución sin formación en competencias básicas relacio-
de problemas de alto coste computacional, o nadas con la programación de los computado-
resolver problemas en tiempo real, para lo que res del mercado actual.
también es necesario tener en cuenta la reduc-
ción del tiempo de ejecución. Creemos que de-
berían estudiarse los temas básicos de progra- 3.2. Asignaturas de programación paralela

mación paralela con referencias a las prestacio- Se puede decidir incluir programación parale-
nes de los programas y algoritmos paralelos, la, pero entendiendo que es un tipo de progra-
tal como se hace con la programación secuen- mación diferenciado, por lo que debe haber al
cial, donde se suele estudiar nociones intuitivas menos una asignatura de fundamentos básicos
de análisis de prestaciones en los primeros cur- de paralelismo y concurrencia.
sos, para pasar a un estudio más sistemático
del análisis y diseño de algoritmos en cursos Esta es la situación en muchos casos, don-
sucesivos. de se incluye una asignatura de programa-
Algunas posibilidades de organización del ción concurrente o para sistemas distribuidos,
estudio de la programación paralela en los nue- y complementariamente se pueden incluir en
vos planes de estudio se discuten a continua- asignaturas de arquitecturas conceptos de pro-
ción. gramación paralela. La ventaja de este enfoque
es que el profesorado de estas asignaturas se
3.1. No incluir programación paralela
especializaría en paralelismo, mientras que el
impartir los conceptos propios de paralelismo
Se podría decidir no incluir programación pa- dentro de asignaturas de arquitectura o pro-
ralela en el grado, si se considera que es un gramación secuencial podría ocasionar que el
tema avanzado y se debe dejar para el post- profesorado no estuviera especializado en pa-
grado. ralelismo y diera a su enseñanza un enfoque de
Esta postura se basa principalmente en la más bajo nivel o lo incluyera como un apéndice
reducción en cursos y contenidos prevista para del contenido general del curso.
Si este enfoque de asignaturas diferenciadas
podía ser adecuado hace unos años, cuando el
paralelismo no estaba tan ampliamente difun-
dido, no está tan claro que sea una buena op-
ción para el futuro, pues seguiría diferenciando
la programación paralela de la secuencial (que
efectivamente son diferentes) situándolas a un
nivel distinto de importancia (que no está tan
claro que lo estén).

3.3. Integración en otras asignaturas

Se puede considerar incluir programación pa-


ralela pues todos los computadores actuales
son paralelos y, teniendo en cuenta los di- Figura 2: Organización de la programación para-
ferentes aspectos del paralelismo (arquitec- lela en los futuros planes de estudios
turas, herramientas, programación, algorit-
mos...), decidir que deben incluirse aspectos
de paralelismo en diferentes asignaturas. (CON + HER), y el análisis y diseño de algorit-
Quizás esta sería la opción más adecuada, mos paralelos se abordaría de forma conjunta
dada la omnipresencia (actual y prevista pa- (ANA + IDS), pero no necesariamente de una
ra el futuro) de los sistemas paralelos, pero manera diferenciada, sino que puede ir dentro
por los motivos mencionados en el apartado de CON + HER y de asignaturas propias de pro-
anterior puede que cambiar a un enfoque de gramación secuencial PRO. Discutimos breve-
este tipo en el momento actual no sea lo más mente los contenidos de cada uno de los apar-
adecuado. Está claro que esta postura se pue- tados:
de compaginar con la anterior en cuanto a la
conveniencia de incluir alguna asignatura es- • ARQUITECTURAS PARALELAS:
pecíca de nociones básicas de programación Entendemos que la estructura actual de la
paralela, y con la de incluir nociones de pro- enseñanza de estructura de ordenadores
gramación paralela en las asignaturas de ar- y arquitecturas paralelas es la adecuada,
quitectura, pero no se dejaría el peso de la por lo que se incluye un módulo ARQ que
programación en esas asignaturas que tratan abarca todos los cursos del grado. Estas
el paralelismo a más bajo nivel. asignaturas contendrían temas de progra-
La organización en este caso se muestra en mación paralela sólo para ejemplicar el
la gura 2. Comentamos los aspectos generales uso de las arquiteturas paralelas que se
de esta organización. En el grado se incluirían estudien, pero el estudio de la programa-
conocimientos obligatorios de paralelismo a to- ción y los algoritmos paralelos se dejaría
dos los niveles: arquitecturas (ARQ), programa- a asignaturas propias de programación.
ción y herramientas paralelas (CON + HER) y
análisis y diseño de algoritmos paralelos (ANA • PROGRAMACIÓN CONCURRENTE,
+ DIS). En los postgrados estarían la mayoría HERRAMIENTAS DE PROGRAMA-
de las asignaturas optativas, aunque podrían CIÓN:
incluirse algunas en los grados si así se estima Algunas nociones de programación para-
conveniente. Los volúmenes de cada apartado lela se pueden incluir en otras asignatu-
en la gura no están relacionados con la im- ras. Por ejemplo, el estudio de threads y
portancia que se concede a cada uno de ellos. algunas nociones básicas de su programa-
El estudio de las nociones básicas de progra- ción puede incluirse en asignaturas de sis-
mación paralela y de herramientas de progra- temas operativos o arquitecturas; y al uti-
mación paralela se contempla como un todo lizar lenguajes que incluyen herramientas
para paralelismo se puede indicar la exis- los secuenciales. Las herramientas de pro-
tencia de estas herramientas y mostrar su gramación se incluirían en CON + HER pe-
utilización (por ejemplo en C la gestión ro, como hemos mencionado, algunas que
de procesos, o la opción de compilación sean parte de un lenguaje secuencial se
-openmp, y la gestión de la concurrencia pueden estudiar junto con éste.
en Java). Pero en cualquier caso, este te-
ma debería incluirse en una o dos asigna-
4. Conclusiones
turas especializadas, dedicadas a progra-
mación concurrente, distribuida, de tiem-
En este trabajo se analiza la situación de la
po real..., y estas asignaturas no se inclui-
enseñanza de la programación y los algoritmos
rían en el primer curso.
paralelos en los planes de estudios de Informá-
• ANÁLISIS Y DISEÑO DE ALGORIT- tica. Debido a la difusión creciente de los sis-
MOS PARALELOS: temas paralelos y al proceso de reforma de los
planes de estudio, creemos que es el momento
No creemos necesario en el grado la inclu- adecuado para replantearse la organización de
sión de una asignatura especíca para es- la enseñanza de estos temas.
tos temas diferenciada de las asignaturas Los ingenieros en informática son los pro-
de programación concurrente y distribui- fesionales que trabajan con estos sistemas y
da, aunque si se considerara conveniente que tienen que desarrollar software para sis-
incluir más asignaturas relacionadas con temas paralelos, por lo que en nuestra opinión
el paralelismo alguna de ellas podría estar no puede aducirse que es un tipo de programa-
dedicada a supercomputación y a reduc- ción complejo para no incluirlo o relegarlo de
ción del tiempo de solución de problemas los estudios. Para obtener las máximas presta-
de alto coste, y sería esta asignatura la ciones de estos sistemas es necesario estudiar
que incluiría estos contenidos. técnicas de análisis y diseño de algoritmos pa-
Lo que sí creemos necesario es el estu- ralelos, y deberían estudiarse con un nivel de
dio de algoritmos paralelos desde un ni- abstracción similar al que se utiliza en la pro-
vel de abstracción similar al que se uti- gramación secuencial.
liza en la actualidad para abordar el es- Este trabajo pretende motivar la discusión
tudio de algoritmos secuenciales. Se de- sobre cómo incluir contenidos de programación
berían incluir temas de análisis y diseño y algoritmos paralelos en los nuevos planes de
de algoritmos paralelos en las asignatu- estudios. En nuestra opinión una buena op-
ras propias de programación, tanto las de ción sería incluir la programación paralela co-
programación secuencial (PRO) como las mo parte de las asignaturas de programación,
de programación concurrente y distribui- aunque con alguna asignatura especíca de pa-
da (CON + HER). Esta visión se ve refor- ralelismo.
zada por la inclusión de capítulos de pa-
ralelismo en libros clásicos y recientes de
5. Agradecimientos
algoritmos [2, 5]. Cuando se describe el
modelo de máquina secuencial se puede
incluir uno equivalente de máquina para- Este trabajo ha sido nanciado en parte por
lela. Al estudiar el análisis de algoritmos la Fundación Séneca, proyecto 08763/PI/08,
secuenciales se puede ver de forma intuiti- y por el Ministerio de Educación, proyecto
va la reducción en el tiempo que se puede TIN2008-06570-C04.
conseguir con la programación paralela,
nociones básicas de análisis de algoritmos Referencias
paralelos, y las dicultades de obtener las
máximas prestaciones. Se podría incluir [1] Francisco Almeida, Domingo Giménez,
algún esquema paralelo adicionalmente a José Miguel Mantas, and Antonio M.
Vidal. Introducción a la programación pa- [6] Bradford Nichols, Dick Buttlar, and Jac-
ralela. Paraninfo Cengage Learning, 2008. queline Proulx Farrel. Pthreads program-
[2] Brassard and Bratley. Fundamentos de ming: A Posix Standard for Better Multi-
algoritmia. Prentice-Hall, 1997. processing. O'Reilly, 1996.
[3] Jack Dongarra, Ian Foster, Georey Fox, [7] OpenMP. http://www.openmp.org/blog/.
William Gropp, Ken Kennedy, Linda Tor- [8] Michael J. Quinn. Parallel Programming
czon, and Andy White, editors. Sour- in C with MPI and OpenMP. McGraw
cebook of Parallel Computing. Morgan Hill, 2004.
Kaufmann Publishers, 2003. [9] Marc Snir and William Gropp. MPI. The
[4] A. Grama, A. Gupta, G. Karypis, and Complete Reference. 2nd edition. The
V. Kumar. Introduction to Parallel Com- MIT Press, 1998.
puting. Addison-Wesley, second edition, [10] Barry Wilkinson and Michael Allen. Pa-
2003. rallel Programming: Techniques and Ap-
[5] Ellis Horowitz, Sartaj Shani, and Sangt- plications Using Networked Workstations
hevar Rajasekaran. Computer Algo- and Parallel Computers. Prentice-Hall,
rithms/C++. Computer Science Press, second edition, 2005.
1997.

También podría gustarte