SIMULACIÓN DE UN FLUJO SUPERSÓNICO CON …

Preview:

Citation preview

T E S I S

P R E S E N T A

EL LIC. CARLOS COUDER CASTAÑEDA

MAESTRO EN CIENCIAS DE LA COMPUTACIÓN

QUE PARA OBTENER EL GRADO DE

MÉXICO, D.F., AGOSTO 2003

DIRECTOR DE TESIS: Dr. BÁRBARO JORGE FERRO CASTRO

CODIRECTOR DE TESIS: Dr. AGUSTÍN F. GUTIÉRREZ TORNÉS

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN

SIMULACIÓN DE UN FLUJOSUPERSÓNICO CON METODOLOGÍAPARALELA ORIENTADA A OBJETOS

INSTITUTO POLITÉCNICO NACIONAL COORDINACIÓN GENERAL DE POSGRADO E INVESTIGACIÓN

CARTA CESIÓN DE DERECHOS

En la Ciudad de México, D.F. el día 24 del mes Noviembre del año

2003, el (la) que suscribe Lic. Carlos Couder Castañeda alumno (a) del

Programa de Maestría en Ciencias de la Computación con número de registro

B991214, adscrito a CIC-IPN , manifiesta que es autor (a)

intelectual del presente trabajo de Tesis bajo la dirección de

Dr. Bárbaro Jorge Ferro Castro y cede los derechos del trabajo intitulado

SIMULACIÓN DE UN FLUJO SUPERSÓNICO CON METODOLOGÍA_ __

PARALELA ORIENTADA A OBJETOS ,

al Instituto Politécnico Nacional para su difusión, con fines académicos y de investigación.

Los usuarios de la información no deben reproducir el contenido textual, gráfica o datos del

trabajo sin el permiso expreso de autor y/o director de trabajo. Este puede ser obtenido

escribiendo a la siguiente dirección ccouder@esfm.ipn.mx . Si el permiso

se otorga, el usuario deberá dar el agradecimiento correspondiente y citar la fuente del

mismo.

Nombre y Firma

Al creador de la vida y dueño del

conocimiento, por haberme dado salud

y voluntad para llegar hasta aquí

A mi hermano, Vito

A mis hermanas, Karla y Karina

A mamá Malena y papá Nacho

A mis Tíos,

Primos y Sobrinos

que hacen de la familia

un mejor concepto

A mi madre, Celia

A mi padre, Luciano

�������������

�� ������ � ����� ��� �� �� �������� �� �� ��� ���� ��� ���� ��

��� ���� ��� ���� � ��� ���� ��� � ���������

�� ��� ������� ����� ���� ������ ! �� ��� ������� ���� ��� "�#

� ����� $����� ��� �� ���!� �� �� ���� �� � ���� ��� �% ! ��� ����#

� � ����� &�� ��� �� ������ ��� �������

� � ���� �� ��� '��� (�� ��� ����� ������ ��� ���� ��� �������#

�� �� �� ��� ������� ! � � ���� �� ( �� ��� � �����)�� *�������

��� �� ���!��

� � � � ������% ��� ��� �������� ���� &�� + � ���� ��� ��� �� ���#

� ��� �� � ���� �����,��

� ���� �&������ ��������% &�� ����� ��!���� � ������ -�����

�������

(� ����� � � �� ��!�� ���� � ������� ���,� ���� �� �� ����� �� �

�� ���������� ��������% �+� ����� � ����� � ��� ��&��� � ����� � ��

�������� �� � ����.��% �� ���� �� ��� ����� -���� � �� � �� ������ ! �� �/��#

� ������ �� ���� � ����� � ������ ������,�� ������ �� ������ � ����.����

0� �� ���� ���������% �� �������� �� � ����.�� ������ ���� �� �����

����� ���� �������� ��������� &�� �������� �������� !1� ���������� �����#

�� � �� �� ��������� �� 2 � ������� �� ���������� �� � �� ����� �� ���

���������� �������� �� �� �����,� ����% �� � � &�� �� ��&� ���� �� .���

��� ����� ���� �������� ������ ���� &�� �� ����� �,������ �� ��� ��������

0� �� ���� �����/�� ��� �� ��&� ���� ����������� ! ���� ��� � ��!�� ���#

����� ��% ���� �� �� ����� � ��,���� ! �� ���� � �����,��% &�� ���� ���

������� � ��� ��!�� �/ �� �� �������� �������� ! -��� �����

0��� ��� � �� ����� ��!�� �� ��)� ! �� ��������� �� � ��� ��� ��� ��

�������� ! �� ����� � ��,���� ���� � ����� �� 3�,� �������� ��% �� � ����

���� �����-���� �� ��&� �� � ����� �������� � JAVA� ���� �������� �� ��,�#

� ��% �� ���� ����� ��� ����� ��� ����������� ! ����������� ��&��� ��% !

������ ������� ��� ��� ����� �� �� ��������� �� �� �������� ���� �� � ����#

� �� �� 3�,�� 0� ������ �� � �� ��� ��� �� �� ������� ��� -������ ��� �� �

��)� � ���������� �� �� �������� ��������% ! �� ����� � � �� ������ ��

�� �� ��������� � �+� ��)� ! �� ���������� �� �� � ����

�����

$+� ���� -�� ������� �������� ���� ���� �����+� �+� ����� �� �- �+�

�������� ��������% �+ � ������ �! �� ��� �- �+��� ��&� ������� �- �+� �� ��� .�

�������� ��% 4+ �+ � � ��4 4�! �� ,� � �+� �+���! �� �+� �/��� ������ ��

�� � ������ ������/ �!����� ���� �� �� ��� .� ������ � �+� �������� �#

���% �+� �� ��� .� �������� �� ������� �� � ��4 .�� �� ����� �������� �+��

��� �/���� �� ��1�� ��������� �� �������� � � ���������!� *�4���� �+� �#

��������� �� �- � ���� � � �������� �������� � �� ������ 4��5% �������

�+�! ��&� �� �� �� -! �+� ����� �+�� �� �+�� �+�! ��� ���� ���� �� �/����� �

�+�� ��� �������� � � � �+ � �����/� 4+��� �+�! ��� ��&� �� ���+����� ��

�� ���+� ��� �- ���� �������� ��% �� �+� ��,��� �������� �� �� �+� �������

���� �� �+�� ����4 �� �� � 4 �+ ������� � ������� �� -���� ���� ��������

$+ � �+�� � ����� ����� � �+� �� �� �� �+� ��������� �� �- � ��,��� �� ��#

�� �������� ���� ��� �� �� � ������ � �������� � 3�4% �� �� �� ����-��� �+�

JAVA �������� � ����� ���+ ��� $� ����+ �+� ��,��� ��% .��� 4� ����� �� �+�

���+����� �� �� ��&� �� ���+����� ��% �� ����� �� 4� ����! �+�� � �+�

��������� �� �- �+� ������� -�� �+� � ����� �� �- �+� 3�4� $+� ������� �- �+�

���� ��� �� � �� �+�4 � --����� �� �� ��� �� �� ���������� �� �- �+� ���#

� �� �������% �� �+� ������� �- �+� ������� �� � �+� �������� �- �+ � �� ��

�� �+� ���������� �� �- �+� ���� ����

����� �

���� � ������� ����

���� � ����� ���

���� ���� ��

����������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 67

�������� ���� �� �������� � � � � � � � � � � � � � � � � � � � � � � � � � 67

���� .��� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 67

���� ���� ���� ���� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � 67

��������� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 66

8�,�� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 66

8���� ��� �� �� �����,� � � � � � � � � � � � � � � � � � � � � � � � � � � � 66

�� ����������� �������� ������ � � ������ �

9�9� ��������� �� �������� � � � � � � � � � � � � � � � � � � � � � � � � � 9

9�9�9� '����� � ��������� �� �������� � � � � � � � � � � � � � � � :

9�;� 2 ������ ��������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � <

9�;�9� ��&� ������� � � ������ ��������� � � � � � � � � � � � � � � =

9�>� '��� ��� �� ������)� ���� ��������� ��������� � � � � � � � � � 9?

9�@� ��������� �� �������� �� ����� � ��,���� � � � � � � � � � � � � � � 9<

9�@�9� 8�,���� ! �����,�� � � � � � � � � � � � � � � � � � � � � � � � 9=

9�@�;� 0� ����� � ������ �� ��� �� � � � � � � � � � � � � � � � � ;?

9�@�>� 0� ����� � ������� � � � � � � � � � � � � � � � � � � � � � � � ;9

�� ��������� � �� ��������� ��

;�9� '��� ���������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � ;:

;�;� ���� � �����,�� � � � � � � � � � � � � � � � � � � � � � � � � � � � � ;=

7

7 CONTENIDO

;�;�9� '����� �������� ������ ��������� � � � � � � � � � � � � � � ;=

;�;�;� 7����,�� �� ����� � ���� � �����,�� � � � � � � � � � � >?

;�>� (� ��&� �� � ����� �������� � � � � � � � � � � � � � � � � � � � � � � >9

;�>�9� (� ��&� �� � ����� �������� � ��7� � � � � � � � � � � � � � >>

�� �� �� ��� ������� � �� �������� ��

>�9� (�� ����� ���� &�� ������ �� 3�,� � � � � � � � � � � � � � � � � � @;

>�9�9� (� ����� �� ���� �� -���� ����� ���� � � � � � � � � � � � � � @;

>�9�;� (� ����� �� ���� �� -���� �� ����� ���� � � � � � � � � � � � @A

>�;� '���� �������� ���� ���� �� -���� �� ������� � � � � � � � � � � @=

>�>� ����� ��� '��������5 � � � � � � � � � � � � � � � � � � � � � � � � � AA

>�>�9� ����� ��� '��������5 ���� �� -���� ����� ���� � � � � � � AA

>�>�;� ����� ��� '��������5 ���� �� -���� �� ����� ���� � � � � A=

>�@� ���������� � � ���� ! ��� � ���� � �� -������� � � � � � � � � � � � :>

>�@�9� ���� �� -���� ����� ���� � � � � � � � � � � � � � � � � � � � � :>

>�@�;� ���� �� -���� �� ����� ���� � � � � � � � � � � � � � � � � � � <?

�� ����� � ������������ ��

@�9� � ��)� � ��������� ��������� � � � � � � � � � � � � � � � � � � � � <@

@�;� $ ���� � �,���� �� �������� � � � � � � � � � � � � � � � � � � � � � � <=

@�>� ����� ���� ��������� ���� -����� �� .� ��� � � � � � � � � � � � � � =;

@�@� ������� ���� �� ����� ��� '��������5 � � � � � � � � � � � � � � � B@

@�A� ����� ��� �������� ���� �� -���� ����� ���� � � � � � � � � � � � � � BB

@�A�9� � ������ � ������� � ! � ���� � ����� ��� �� ���� ��

-���� ����� ���� � � � � � � � � � � � � � � � � � � � � � � � � � 9?>

@�:� ����� ��� �������� ���� �� -���� �� ����� ���� � � � � � � � � � � � 9?<

@�:�9� � ������ � ������� � ! � ���� � ����� ��� �� ���� ��

-���� �� ����� ���� � � � � � � � � � � � � � � � � � � � � � � � 99?

@�<� � ������ � ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � 99@

�� ������� ������ �� ���

A�9� ���.����� �� �� ������� � �� ��7' � � � � � � � � � � � � � � � � 99<

A�;� �������)� � �� ��7' � � � � � � � � � � � � � � � � � � � � � � � � � 9;;

A�>� $ ����� � �,���� �� � � � � � � � � � � � � � � � � � � � � � � � � � � 9;A

A�@� "��.��� � �� � ����� �� � � � � � � � � � � � � � � � � � � � � � � � � 9>@

CONTENIDO 7

�������� ���

C�������� ��������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9@;

( � ��� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9@;

$����,�� -������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9@>

���� ���� ���� .����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9@>

����������!� ���

�� ��� �������� � ������"��#�� ���� � ��$

��9� (�� ����� ���� &�� ��� ����� �� 3�,� � � � � � � � � � � � � � � � � � 9@B

��;� ���� � ��� ����� ���� ��)��� ���� � � � � � � � � � � � � � � 9A@

��>� $����� � �+�&��#�/���� �� � � � � � � � � � � � � � � � � � � � � � � 9AB

��@� 0���� ���� �� -����� �� .� ��� � � � � � � � � � � � � � � � � � � � 9:>

�� %���� �� ���� �&�

��9� ����� �� � + ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9:=

��9�9� ����� �� � + ��� ��� �� � � �� ����� $+��� � � � � � � � 9:B

��9�;� ����� �� � + ��� ��� �� � � �� ����-�� C������� � � � � 9<>

��9�>� � ��� � � � � �� + �� � � � � � � � � � � � � � � � � � � � � � 9<A

��9�@� �� �� ��� � + ��� � � � � � � � � � � � � � � � � � � � � � � � 9<<

��9�A� * ��� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � 9<=

��;� 2 ����� ��� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9<B

��>� 0� ��� � + ��� ���� �������� ��� ����� �� � � � � � � � � � � � � � 9=;

�������� �'$

���� � �������

9�9# 1� �������� �,����� � � � � � � � � � � � � � � � � � � � � � � � � � � ;

9�9# 2� �������� �������� ��� � � � � � � � � � � � � � � � � � � � � � � � � ;

9�9# 3� * ��� � �,���� �� � � � � � � � � � � � � � � � � � � � � � � � � � � @

9�9# 4� ������� ��� �������� � � � � � � � � � � � � � � � � � � � � � � � � A

9�9# 5� ������� ��� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � A

9�;# 6� '���� � ������� � � � � � � � � � � � � � � � � � � � � � � � � � =

9�;# 7� '���� � ��� �� � � � � � � � � � � � � � � � � � � � � � � � � � � =

9�># 8� 2��������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9;

9�># 9� (�! � ���+� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9>

9�># 10� 2����� ������ �D���� � ����������� � � � � � � � � � � � � 9@

9�@# 11� 8�,���� ! �����,�� � � � � � � � � � � � � � � � � � � � � � � � � � 9=

;�9# 12� '��� ���������� � � � � � � � � � � � � � � � � � � � � � � � � � � ;<

;�;# 13� '���� � ���� � �����,�� � � � � � � � � � � � � � � � � � � � � ;B

;�;# 14� '���� � �������� � � � � � � � � � � � � � � � � � � � � � � � � � � >?

;�># 15� ���� � �����,�� ����� ����������� ����� �� �7' � � � � >;

;�># 16� 'D�� ���� �������� �,��������� �� ��� ���������� � � � � >>

;�># 17� ����� ��� �� � �� ��7' � � � � � � � � � � � � � � � � � � � � � @?

>�;# 18� ����� -�� �� �� ������� � � � � � � � � � � � � � � � � � � � � � � @B

>�;# 19� ����� �������� ���� � � � � � � � � � � � � � � � � � � � � � � � � A?

>�@# 20� ��� � ���� � � ���� � � � � � � � � � � � � � � � � � � � � � � � � :>

>�@# 21� ��� � ���� � ����� � � � � � � � � � � � � � � � � � � � � � � � � :A

>�@# 22� ��� � ���� � �� -������� ���� �� 3�,� �� ����� ���� � � � � � � <;

@�9# 23� '��������� ���' � � � � � � � � � � � � � � � � � � � � � � � � � � <A

@�9# 24� ��� ���� ���� � ���� ����� ����� ��� ����� >� � � � � � � � � � <:

6

6 LISTA DE FIGURAS

@�># 25� 0��������� � ������ � �������� � .�� ����� ��� �����

� ���� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � =@

@�># 26� 0��������� � ������ � �������� � ������ � � � � � � � � � � =A

@�># 27� �������� � ��� ��� �� � ����� � � � � � � � � � � � � � � � � � =:

@�># 28� ���� � �����,�� ���� �� �������� � �� ��� ��� �� � ����� B?

@�># 29� ���� � �� ���� �� �������� � �� ��� ��� �� � ����� � � � � � B;

@�@# 30� � ��)� � �������� � .�� � � � � � � � � � � � � � � � � � � � � BA

@�@# 31� � ��)� � �������� � ������ ���� �� 3�,� ����� ���� � � � � B<

@�@# 32� � ��)� � �������� � ������ ���� �� 3�,� � ���� ���� ��

����� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � BB

@�A# 33� ���� � �����,�� ���� �� -���� ����� ���� � � � � � � � � � � � 9?@

@�A# 34� ����� � ��� � �� -���� ����� ���� � � � � � � � � � � � � � � � 9?A

@�:# 35� ���� � �����,�� ���� �� -���� �� ����� ���� � � � � � � � � � 999

@�:# 36� ����� � ��� � �� -���� �� ����� ���� � � � � � � � � � � � � � 99;

@�<# 37� � ������ � ������ �� �������� � ���� ���� ����� ���� � � 99A

@�<# 38� � ������ � ������ �� �������� � ���� ���� �� ����� ���� �99:

A�9# 39� 7�� ���� �(�22��$* � � � � � � � � � � � � � � � � � � � � � � � � 99=

A�9# 40� ������ � �� ��7' � � � � � � � � � � � � � � � � � � � � � � � � � 99=

A�9# 41� ������� � �� ��7' ��,� ( ��/ ! E ��4� � � � � � � � � � � � 9;?

A�9# 42� ������� � �� ��7' � � � � � � � � � � � � � � � � � � � � � � � � � 9;9

A�9# 43� �������� �� �� ��7' � � � � � � � � � � � � � � � � � � � � � � � � 9;9

A�># 44� ������, � � ��������� �� ��� + ��� � �,���� �� � � � � � 9;:

A�># 45� ������� ������� � � � � � � � � � � � � � � � � � � � � � � � � � � � 9;=

A�># 46� �������� �������� � � � � � � � � � � � � � � � � � � � � � � � � � � 9;=

A�># 47� $ ����� � �,���� �� �� �������� ����� ���� � � � � � � � � � 9>;

A�># 48� 2�����F� �� �������� ����� ���� � � � � � � � � � � � � � � � � 9>;

A�># 49� $ ����� � �,���� �� �� �������� �� ����� ���� � � � � � � � 9>>

A�># 50� 2�����F� �� �������� �� ����� ���� � � � � � � � � � � � � � � 9>>

A�@# 51� ���������� � ����� � �� x G�1�H � � � � � � � � � � � � � � � 9>:

A�@# 52� ���������� � ����� � �� y G�1�H � � � � � � � � � � � � � � � 9><

A�@# 53� �D���� � '��+ � � � � � � � � � � � � � � � � � � � � � � � � � � � 9><

A�@# 54� ���� � (ρ)� I�1�3 � � � � � � � � � � � � � � � � � � � � � � � � 9>=

A�@# 55� $���������� (T )� I � � � � � � � � � � � � � � � � � � � � � � � � � 9>=

A�@# 56� ���� �� (p)� �1�3 � � � � � � � � � � � � � � � � � � � � � � � � � � 9>B

LISTA DE FIGURAS 6

A�@# 57� ���������� � ����� � �� x G�1�H G9? ������ � � ���H � � � 9>B

A�@# 58� �D���� � '��+ (M = 3.0) � � � � � � � � � � � � � � � � � � � � � 9@?A�@# 59� �D���� � '��+ (M = 4.0) � � � � � � � � � � � � � � � � � � � � � 9@?

��># 1� 0/���� �� �������� �� � � � � � � � � � � � � � � � � � � � � � � � 9AB

��># 2� ������� �� �������� �� � � � � � � � � � � � � � � � � � � � � � � 9:9

��># 3� C�� ���� �� � ����� � � � � � � � � � � � � � � � � � � � � � � � � � 9:;

�#@� 4� '���� ����������� � � � � � � � � � � � � � � � � � � � � � � � � � � 9:@

��9# 5� '���� � + ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9:=

��9# 6� 0,���� �� ������� �� � � � � � � � � � � � � � � � � � � � � � � � � 9<?

��9# 7� 0,���� �� �������� � � � � � � � � � � � � � � � � � � � � � � � � � � 9<9

��9# 8� � ������ � �,���� �� �������� � � � � � � � � � � � � � � � � � � 9<;

��9# 9� � ��� � � � � �� + �� � � � � � � � � � � � � � � � � � � � � � � � 9<:

��># 10�� ������ � ������ �� �������� ���� + ��� � � � � � � � � � � 9=<

���� � �����

A�;#$1� '���� � ��&��� � ! � ���� � ����� �� � ������ � � � � � � � 9;>

A�;#$2� $ ���� � ����� ��� �� ����� �� ������ �� �� � ��� +��� � 9;@

A�>#$3� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

����� ���� �% ����� �� �����-���� E ��4� � � � � � � � � � � � 9;B

A�>#$4� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

����� ���� � ����� �� ��#9: � � � � � � � � � � � � � � � � � � � � 9;B

A�>#$5� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

����� ���� � ����� 2J� � � � � � � � � � � � � � � � � � � � � � � � 9>?

A�>#$6� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

�� ����� ���� � ����� �� �����-���� E ��4� � � � � � � � � � � 9>9

A�>#$7� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

�� ����� ���� � ����� �� ��#9: � � � � � � � � � � � � � � � � � � 9>9

A�>#$8� $ ����� � �,���� �� �� �������� ���� �� 3�,� � ���� ����

����� ���� � ����� 2J� � � � � � � � � � � � � � � � � � � � � � � � 9>;

A�@#$9� C�������� �� x = 200.21 � � �� -���� ����� ���� � � � � � � � 9>@

A�@#$10� C�������� �� x = 388.65 � � �� -���� ����� ���� � � � � � � � 9>A

��$1� $ ����� � �,���� �� �� �������� * ����,��� � � � � � � � � � � 9==

6

���� ����

�()*+*,*()*-

(�� ����������� �� +�� ������� � � ��� &�� ��� ��� ��� ��� ��� #

��% � � ������� �� ����� � ������ � �������� ���� � ��� ���� �����#

����� �� �� ��.� ���� ���� ��������� � ������� � ���� ��� � ����� ���

�� .� � ���������� �� ����� � � �������� ����% ��� ����� ��&� �������

����� � �� �� � �� � �� ���,���� � �����������% �� &�� � �� ��� � ��

���������� ��������% �� &�� �� ���� �� ������� � �� ����� � � ����� �%

� �� ���� �� �� ��� ���������� � �� ��)� � ����� ���� &�� �� �/������

���� ����������

(�� ����������� ���������% ���� �� ������� ���������������� ��� ��

����� � � �������� ����% +�� ��� ����� �� ��� � ���� � ���� � ���

����� -���� � +���� ����� ��� ��� (� � ��� � ���� �� ! �� �/��� ������ �� +��

�� � � ������ � �� ��������������� ���� -����� �� ��������� ����� ���

2��������� ��� ������� ������� ���% ��� � ����.��� �������� ������ � �����

�� ��� ���������������� -�������� ������,�� &�� ��� ����� � ��� ������ ��

������� ���� �� �� ��������� ��

��� �� �����% �� ���� ��� �� ����� � ��,���� G�88H �� ��� ����� ������

� ��-���� �� �������� ��� ���� ��� � � ��% �� ��������� �� +� � � ��� #

� ��� ��� �� �����������% �� &�� +� ����� � ��� �� ����� � � ������� �

��� �.� ��� � ��� ��������� ������,��� '� ���� �� ������,� � ���� � ���

�� ���������� ���� ���� � � ��������� ������������ ��� ��� ���� ��

� ��� �� � ��� � ������� � �+�� ��������� ��� �.� ����� ! �� �������� ��

�� ����� ������� ���� ���� ���&�� �� ��������� �� ����������� +� ����� #

� � �/�������� ��������� �� �� �������� �� � ��������� �����������

67

67 INTRODUCCIÓN

������,��% -������ ����� ����� �������� � ���� ����)� !1� ������, �% ���

�� &�� �� ��&� ��� � �� ����� ��-�&��� 0� �� ���� �����/�� &�� �� ���� ��

��������� �� �� ����� � ��,����% &�� �������� ������ ��������� ���� ��

���������� ����% �� ��� ���.��� ! �� +����� �� 0� �� � ��� ���� �% �� ����

� �����,�� �� +� ������� � �� ��� ���������� ��! �.� ���� ���� ����#

������ ����� ���� ���������% �� ���� &�� �� �� ��� ������� � ������� ��� ��

�� ������� ���� ��� ������ �� K9%;L�

(� ��������� �� �������� ! �� ����� � ��,���� �� �� � �� �� -������� ��� #

��� ���� ��� �� .��� � � ������� ��� �����,�� &�� �� ��� ��� ��� �

����� ������������ 0� ��� ��� &�� �� +�� ���������� ������,�� &�� ��������

�� ������� ���% ���� � ��� &�� ��,���� � -������� �����-����� �� ����� #

&��� � ������ �� ����� ! ������ �� � �����,��� 2� ����� �� �� �������� �

�/���� ���� � ������,�� �� ������ � ��,���� ��� � ������% ���� C++% Pas-

cal% ! Smalltalk� 2 � �������% ����� �/���� ���� +�� ������� �� � ���

�� ������� � �/���� � � ! ��� � � � � ���� � ��� �� �� �� ���

�./()*/01*()2 ,*. 3425.*0/

(� ���������� �� �������� ��������� ��� �� � ���% D� ������� � ���

����� � ����� � �������� �� � �� �.� ��% ��� �� &�� �/ �� ��� ������#

� �� ��! �� ���� �� �������� &�� �� &� ��� ����� ���� ��� �� .� � �������

��� ��������� ��������� 0� �������� �����,� � ��� � ������� ���� �� ��)� �

��������� �� �������� �������� ! �� ����� � ��,���� ���� ��������% ��� ��#

� � -����� �� .� ���% �� ����� �� &�� ����� �� �������� � ���� ���� ��

��� ��� �� � ��� �� �� ����� ��� ����� � �� 3�,� �������� �� �� �� �����

�����������# ��������� 0��� � �� � ����� �� ���� ��������� �� -�������

����� ����� ����% ���� �� �!������� &�� ��� �� � ���� �� ��� ����� ��

��������� ! ���������� C��� ��� �� � ����� �� ��� �� � � �� �������� �

����������% ���� �� �� ���������� � ���� ��)�� �� -���� �� �������

����� � ������� ���� 0� ����� � �� � ����� �� �� ����� � ��� ����� ���� �

��� ��#2��5�� ���� � ����� ���� ��� �� � 3� �� �������� ���� G� �H�

� �+�� ����� ���� ����� �� �� -���� � ��������� �� � �� ���� ���&�� �� +�

� ��� &�� -�� � �� �� ����� ��� �� K;>%;:L� � � ������� �� �������� �� ��������

INTRODUCCIÓN 67

���� �� 3�,� � ���� ���� �� -���� ����� ���� �M ��� ��� &�� �� �������� ����%

�� ����� �� � ��� ���� ���������� � � ���� ���� ���� �� �� ��������� ����

�� 3�,� �� �� � ����% &�� �� ������ ��� �� -���� �� ����� ���� �� 0� ���#

������� �% ���� �� ��� ����� �� ������� �� �������� �� ��&� ���� ������� �

�� ���������% ��� ���� �� -���� ����� ���� � ! ���� ���� �� �� ����� ���� ��

(� ����� �� &�� ����� �� �������� ��������� �� � ��� ����� �� ������ ��%

��� �� &�� �� ������� � ��� ��� �� ����� ��� ������ &�� ���� �� ����/ �����

� ��� ����� ��� 2� �� �� �� ����� ��� � '��������5% &�� �� ��� ���� ��

�/���� �� � -����� �� .� ��� � ������ ���� � ���� � ��% �� ����� � !

� ����� � �+� ����� ���% ������ � �� 9B:B% �� ���� � ��! ������� �� �

� &�� �� �� ��&� ��� �������� �� ������ �� ��� � �� ��� � � $�!���% ����

������� ��� ���� � �� � ������ ����% ��� �� &�� �� ����� �� ������� !

�� ���������� � �� �������� (�� ��� � ���� � �� -������� ! ��� ����������

� � ���� ��� ����� �� � �� � �������� � ��� �� � 3� ��� ��� � � ���

��� � ���� �� �� -�������% �/ ��� �� ��� � � � � ��� ��� ���� �� �� ����� ��

������% ��� �� &�� �� ������ �� ���� �� ����� �� � �� � ���� � ��� .� ��

���� ���� ���� K;>L�

���� ��� ��� �� ���� �� � '��������5 � ��� ����� ���� � ��� ��#2��5��

�� ������� � �����-�������� ��� �� ������ �� � ����� � �� ����� -�� �� �

���� � ��� �������� ����% ��� �� ��� ��� ��� ��� �� ����� ��� ������� J��

��� �����-����� �� ����� ! ����� �� ��� ����� ���� �� -����� �� .� ���%

�� ����� ������� ������ (� ������� �� � ���� � �� � ��������� ��&� ��� ��

��� ������ �� ������% ! �� ������� ��� �� ���� ��� �� ���� � � ��� ������

�.� ���� �� ����� ��� � ������ ��� &�� �� ���� ���� ��� �� �� � ���� ������

���� ���� �� .��� �� ����� ��� � '��������5 �� -���� ��������% ��

�� �� �� ���� ��� �� ����� � ��,���� �� � �� ���� � �����,��% ! ����

��&� ������� �� ��&� �� � ����� �������� � JAVAM ��� �� &�� �� ������� &��

�� ���� ��� ���� �� ���� � � �� �� ��� �� ��!�� ���� � �������� �� ! ��

��&� ������� -�� � �� �� ������ � � � ����&� �� � �� � � ����� �������� ���

�/ ��� �� ��&� �� � ����� � JAVA GJVMH�

67 INTRODUCCIÓN

�6-)17+/+18(

0� �� �����/�� � �� ��������� �� �������� �� ��&� ���� ������ ��-�&��� �

��)�% ���� �� �� � �� ���� � �����,�� ��� �� ��������� �� �� ����� � ��,�#

���% ���� �-����� �� ��!�� � ��� � ������� �� ! ���� � �� �� ���������� ��

� ����� ���� ����������

��� ���� ���% �� ����� � �������� �-���� ���� 3�/ � � � ������ &��

�� ��� ��� ������������ �� ���� ����������� ! � ������ � �������� ����

� ���� ��� ��� �� ���� ��� �� � ��&� �������� ���������% �� ��&� ��� ���

���������� �� �� ����� &�� ���� �� ������ �� �������� �������� � ���

-������� � ��� � � ������M ! �� JPVM ������ ��� ���� ��&��� � �����

���� ���������� ��� ����� �� ������ � ��� ����� ���� �� ��� ���#

������� ��������% �� ������� � �� ����� � ���� ���� � � ��� �� ������%

��� ������� ��� +���� �������� ������% ��� �� &�� ������������ ���� � ��

� ��� ��� ���� ����� �� ��������� �� � ��� �� ����� �� �����

2(-1,*4/+12(*- 34*91/-

J�� � ����� �� �� ��� ���� �� ����� �� ���� ���� �� �� ��������� ����

� �� �����% ������ ���� �� � ��% &�� ����!� � ����� � ��� � ����� ���� ��� #

��� ! ������� ��� &�� ��� �� �������� �� �� ��������� ���� ! �� ����������

�� � ����� ���� &�� �� &� ��� ���� ��� ���� ���� ����� � � ���% ��� � ����#

� �� ���� ���� ��� �� ����� ������ ����M ! ����� �� ����� � ��� ���� ��

����� �� +� �������� ��� ������ � ����� � ����� ��� �� ! � ����� ��

� ������ ����� � ���� �% ���� �� �� ���� � �� ��� �� � 3� �� ���#

����� ���� G� �H �� ����� � � ��� 3�,���

(� ��� �� � 3� �� �������� ���� G� �H ����� ��!� ��� ����� ����/ #

��� �� �� �� ���� � ! ��������� � �� ����� � � ��� �� � 3� ��% ! � ���

� ������� � �� ������ ! � �� �/��� ������ �� &�� ��� ��� �� -����� ��� � �#

����� � ���� �� ��� 3�,��� (� � � ���� ���� ���� �� ������� ����/ ��� ��

�� ���� � � � ��� 3�,�� K;>L% ��� �� ��� � ���� � �� ����� �� � �� �������#

��� � ��� � ���� ����� �% �� ���� � ��� �� ����� � � �������� �������

INTRODUCCIÓN 66

���� ��� � ����� � �+� ����� � �� �� � ��� ���� ��� ��� ����� ���� &��

�� +����� �� ���� ���� ��� ��� ����� ���� � � �����

(� ���������� �� ��� +����� ���� � ������� &�� �� ��� �� ��� �� ��

��� ��� ��������� ��� ����� �� ������ ��% � � ��������� �� ���.��� �� ��� ���

������� � � ����� (� � � ���� ��� ���������� � �� ������ ! �� � �� �/��#

� ������ ��� 2 � �������% ����� � �� ����� ���� �� � �� ����� �������#

� ���� &�� ���� �� ��������� ��� ����/ ��� ��% ��&� ��� � ��� �� ���,����

� ����������� &�� ����� ��� ������ ��� ������,�� &�� �� ����� &�� ��

������� ��������� "����������� ��� ��������� � ��� �� 3� �� �������#

� ���� �� ������� ��� ��������� ��� �/ ��� ����� �� ������ �� ���� ����

����� ��� �� ���� � ���

(�� ������ �� � ���� �� ���� ��� � ��� ��� ���D������ ��� ���� �� #

��� �� � 3� �� ! �� �� �� ��,��� ����� �� ���� ���� �� �� ����/ ��� ��

� �� ���� �% &�� �� ��������� ������� ��� �� ����� � � ��� �� �����

������ ����� 0��� �����,� ������� �� ��-�� � � ��� ����������� �������#

� ������ &�� �� �� � ��� ���� ������ � ��� ����� ��% �������� &�� � ��� ����

���� ���� ���D� ���� ���� ��� �� ��&� ��� �������� �� � ���� ��� � �����

�425.*0:)1+/-

(�� ���� ��� ����� ��� � ��������� �� �������� ����������� ���� �/#

���� ���� � ������� ������,��% ���� C ! PASCAL% +�� ������� ����� � �����

�.� ��� �� K9L� 0� ���� � �� � ��������� �� �� �� � ��� ���� ��� ������ ��

��� ����� ������� ��% ��� ������ ����� ��� � ����� ���� � � ����� ��� ��%

��� &�� � �� ��� �� � ���� � -���� ������ ����� ������ � ���������

���������� J� �/���� �� �� � ����� ��� �� ���� �������� &�� �� ��������

�������� ��� ��� &�� �� ����������� ������� �� � � ����� �������� ���� � ��

���� ��� ��M ! ��� ���� � ����� ��� �� ���� ������ � ��� �-����� �� ������

�� �� ����� � ���� $��� �� ��� ����� ���� ���������� ��� ������� ���

����� �� +�� ������� ����� ���� ������� � � ! -�� � ����������� � �� ���

����� ��� ��� �� ��������� �� �������� +� ������ ���� � ������ �/���� ���

���� �� ���� � �����,��M ! ���&�� �� ������� ��� �/���� �� ������������

��&� ��� ��� ��������% +� ������� ����� �� ��,�� ���� � ����� � �����

66 INTRODUCCIÓN

(� ��!���� � ��� ����� ���� ��������� �� ��)���� �� � �������� ����

������� ����% !� &�� ��� �� ����� ����������� ���������� � ���� �������

2 � �������% �� ����� ��� �������� � ��� �� ���� ��,�� ��N ��� -��� ���� !

��,���� �� � ���� � �,���� �� � �� ����������� ������� ��� 0� �� ��� ��#

,�� �� ���� �������� � �� ��� �� ���� � �� �� ��� ������� ��� 0� ������

�� ��������� �.� � � ������� �M ���� � �� ����� ��� ������� �� �� &� ���

�� � ������� ��� ��� �.� ��� �% ! �� �������� ��� ��&�����% �� � ��� ����

��������� ���&�� �� ���� � �����,�� ���� �� ���� � ��� ����� �� -�� � � ��

����� ��� ������� �� ���� ������� ��� �� ��������% ���� �� &� ��� �� � &�� ��

���� �� � ������ ��� ��� 0/ ���� -������� &�� ��� ���� �� �� ������� ���

&�� � ���� ���� �-���� ���� �� �� �� �� � ������� ������ �� ��������% ���

�� ������ �� � ������� �� ����� �� �� � ���� � �,���� ���

(�� ����� ���� �� � �������� ���� ��� �� ������,�� ������������ ��&� ����

� ��� ��� �� �������� ���� ���� ������� ���� �� ��������� ! ������� ����,��

� ���� � �,���� �� K9=L�

�5;*)192-

� ���� ���� �� �� �.��� ��� ��,�� ��� ��������� ! ������.����

�������� ���� � 2� ������� ��)�� � ���������� �� �������� ��#

������ �� � ���� �� ���������� �� ����� � ��,���� ! �� ���� �� � ���� �

�����,��% ���� ����� ��� �� ��� ��� �� � ��� �� �� ����� ��� ����� � ��

3�,� �������� �� �� �� ����� �����������# �������� ������ ��� ��� ����#

� ���� � ��� ��#2��5��% ����� ���� ��� �� ����� ��� � -����� �� .� ���

'��������5% �������� ��� ��� �� � ��)��

��������� ����������� ���� ����������% �� ������N

������� � �� �������� �������� ! �� ����� � ��,���� �������� ��� ��

��&� �� � ����� �������� � JAVA% &�� ��������% ��� �� � � -����� ��

.� ���% �� ����� �� -����� ��

∂F

∂x= J − ∂G

∂y,

�� ���� �� �� � ��� ���� ������ �� 3�,� �������� �� � ���� ���� ��#

��� ���� � �� �� ����� �����������# ���������

INTRODUCCIÓN 66

������� � �� �������� �������� ! �� ����� � ��,���� �������� ��� ��

��&� �� � ����� �������� � JAVA% &�� ��������% ��� �� � � -����� ��

.� ���% �� ����� �� -����� ��

∂U

∂t+

∂F

∂x+

∂F

∂y= J,

�� ���� �� �� � ��� ���� ������ �� 3�,� �������� �� � ���� ���� ��

����� ���� � �� �� ����� �����������# ���������

���� ��� �� ��&� ������� � �� JPVM ���� �)� ��� �� ������� �� ����� �

��,���� � �� ����-���

�4</(1=/+18( ,*. )4/5/;2

0��� ��� � ������ � � ��� ���������� 0� �� �������� 9 �� ���� � �� ����#

��� ���% ���� ����� ��� �� �� ����� ��������� ! �� �/����� ��� ���� ���

�� ������)� � ��� � ������ ���������� 2� ���� ��� ���� �� ��� �� �� �����

������ � �� ��������� �� �������� �� ����� � ��,����� 0� �� �������� ; ��

�/�� �� �� ��&� ������� � �� JPVM �� ���,���� ��� �� ����� � ��������� 0�

�� �������� > �� ���� �� �� ����� ������� �� ���� � ����� �� ��������� ��#

�� � �� 3�,� �������� �� �� �� ����� �����������# ��������% ! �� �������

��� ��&��� � ����� � �� ��� ��� ��� 0� �� �������� @ �� ��)� �� ����� ���#

����� ���� ���� �� � ����� �� � &�� �� ��.��� �� �������� ����� ��% �� � ����

�� ���������� �� ����� � ��,���� ! �� ���� � �����,��� 0� �� �������� A ��

�/�� �� ���� �� ����� � ���� �� �,���� �� � ������� �� � ��� ��������� ! �� ��#

����� � �����,� � �� JPVM ! �� �������� ��� ��������� ����� ��� 0����� �

�� ��������� ��� ������� ����� 0� �������� ����!�% �����% �� ����� �� �

�� � �� ����-�� � ���% �� � ���� � .�����% �� � ���� � ������ ! �� ������ �

� ���� ����

� � ��������� �� �����,� ����!� �� ���� ���% �� �� �� ���� �� �������

�� ����� �� ������� � ��� ��#2��5�� ���� � ���� ���� ��� �� � 3� ��

�������� ����% ! �� ���� ��� �� ������ � �+�&��#�/���� �� ���� 3�,�� �����#

��� ��� ! �� ���� �� � -����� �� .� ���� 0� �� ������ ���� �� �� ��������

��� ����� �� ��� -����� �� .� ��� �� � ���� ������� ��� �� ����� � ��,����

� � ���� � �����,���

/3>)6.2 �

����������� ��������

������ � � ������

0� ���� ��������% �� ���� � �� -��� �� �� ������� ��� �� ��� � ������

� �������% ! �� �������� ��� ������ � � ������ ! ��������� ��% &��

��� �� ���� �� ��������� � ��)� � ����� ����% ���� � � � ��� � ����

� ���������� ��� 2� ���� ��� ��� ���� ��� �� ����� � ��������� ��

�������� �� ����� � ��,���� �� � ��� ���� ���������� �� ��� ��� �� � ����

��� ��

���� �42<4/0/+18( 3/4/.*./

J� ������� �� �� �,���� �� � �� �������� ������� ��% ! �� ����� ��#

�� ����� ��� ��� �� ���,���� � ��� ����� �.� �� ��� �� ���������� !

���� �� ��� �� ���,���� � ��� ����� ����� ��� ���� ��� ��� �� �����/�� ��

�������% ���� ��� �,����� �� ����� � � ���� ���� KBL�

���-���� �� �,������ ��� ������� ���� �.� �� �� �� ��������% �� �����

�� ������� �� �� �� .����� ��� ������� �� ���� ��� �� ��� ������� � �

��� � ��� ��� ���� ���� ����

0� ��� ��� ���� ���� &�� �� ������� �� ��� ������� � � ������ ���� &��

����� ��� ���� ���� ��� �� ���� ����������

9

; CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

0/ ���� ����������� ��� � ��� �������� &�� ��� ����� ������� ����������

����� �� ��������� �� �������� ���� ��������% ! �� ���� ���� � �� ���� .���

�� �,���� ! �������� ����

�������� ������ 2� �� &�� �� � ��� �������� ��� �,���� � �� �����

���� ��� � �������������% � � �� ��� � � � � ������� ���� G��� �� .���� G9�9#

1HH�

Proceso 1 Proceso 2 Proceso 3

Figura 1.1-F1. Procesos disjuntos

�������� ������������� (�� �������� �������� ��� �� ����� ��� ���� �#

������ ���� �� �� ���� ��� �� � ��� �����% ������� ��� �������� �� � �����%

��� �� &�� ��&� ���� ������ -���� � � ����� ��� �� ���� ��������� �� ���� �#

���� � � ��� ���� &�� ��������� G��� �� .���� G9�9# 2HH�

Proceso 1 Proceso 2 Proceso 3

Figura 1.1-F2. Procesos cooperativos

1.1. PROGRAMACIÓN PARALELA >

�� � �� ��������� (�� �������� �������� ���� ������� �������� �� � �#

����% ! � �)� ��� �� ����� ��� �� ������������ GIPCH% �� ������� � ��#

������ �� ������ ��� ������� (� ����� � � �+����� �������� �� � �����%

���,� ���� �� �� �������� �� � ������ &�� �� ��� �������� �����% ����

��� �������� �������� 0� �� ��� ���� ���� �����% ��� ��� �������� �� ���#

�� ���� ��� � �������������% �� ��� ��� ������� � �� ����� ��� ��� �� �

�� ����% ��� �������� ����� +�� � ���� ���� ����� -������� ��� ��� � �,�#

��� �� ����� � �� ���� � ����� �� 0��� �� ������ � �� ����� ��������

������ �� � �� ��������� ��������������� �� + �� �� ��� �� ��� ������#

� � � �,���� �� ������ � ���� ����� � �� ������� K9>L� ��� + �� � ��� ��

���� � � ��% �� ���,���� � ��� �����% ��� ���� ������.���% ��� ��� ����� ����#

���% �� ������� � ��)���� ! �� �-����� �� � �����% �� ����� � � �����% ����

2 � �������% ���� ��� + ��� ����� � �� ������� ��������� �� � ��� ����� �

� ���� ����% �� ����,� ������� � ��)����% ����� � � ����� ! �� � ����� �

������� ! ��� ��� 0� �� ������� ���� + ���% ��� + �� �� �,����� �����#

��������� ! �� ����� �������� ��� �� &�� �������� � �� ����� ��� �� �����

+ ���% �� ����� ������� �� � � &�� �� ���������� ����� �� � ��� �������

! ����� -�� ������ ��-����� �� ���� �������� �� ������ � �� �������� �

+ �� � �,���� ��% �� ���� ���� ���� &�� �� ������� �� ��� ��� � � ��#

������ ����,��� ��� �� � ����� ������ �� ���-����� ��� �� ����� �� + ��

� �,���� ��� 2� �� ������� ���� ��������� ��� �� � ��� + ��� � �,���� ��%

�������� �� ��� ��� &�� ��� + �� � �,���� �� �� ���� ���� ��� �� ��������%

� ����� ! ����� �� �����-���� ��� �� ������� �� �,����� ��� �� � �����

���� ��������� � ����� � ������� � � ���� �� �� ������ �� �� ,���� ��

+��4��� ������� �� ������������ ���������� ��������������� �� + �� ���#

� ����� ���� �� �������% ��� �� &�� ��� �� ������ ����� �������� ��� ��

���� �� � + ���% ���� ����� &�� �� ������� ��� � � ��� � + ��� ���� ����

��� ����� � �� �� � ����� � ����� � ������� �� 0� �� .���� G9�9# 3H ��

������� �� ������� ��� ���� + ��� � �,���� �� ��� ������ ��������� �� ��#

��� � � ���� ���� ! �� ����� ��� � IPC ���� ����� ����� ! �� ��������

����+ ���� &�� ��&� ���� � IPC ���� ����� ������

@ CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

IPC

un solo hilo múltiples hilosun solo hilo

Figura 1.1-F3. Hilos de ejecución

�������� ���� � �� J� �������� �������� �� ������� ��� �� � ���

�������� ������������ &�� �� ����� �,������ � ������������� K>L� (� ����#

� ��� �� ���� �������� �� � ���� ��� ����� ������� �� � �� ���� �� ����

� �����,��� ����� �� �� � ��� ��� ����� ������� ��% �� ������� ���� �� ��

��� ��� ���� &�� �� ���� ��� ���� �������� 0� �� ���� � ���� � �����,��% ��

������� ����� �� �����,� &�� �� ��� � � ��� ���� ��������

J� �������� �������� ���� ��� �,������ ���� � ��� � ��� �������� ���#

���� � ��� � ��� �����������% � �,������� ��� -������� �������� �� -�#

������ ����������� �� ������� ��� (� �� ���� ����/ ��� �� �� ������ ����

���� ��������� ��% ! �� ���� �� �� ����� � ���� &�� ���� ���/� ��� �����#

��� �� ��� � ��� �� ������������ (� ���� ��������� �� �� ����� � ���� � � ���

������ �� � �����% ������ ��� �� � ���� �� ��������� ����� ��� -�������

�������� ! ���� ���� ��� � ��� �� ������� ���� ���� ��� � ��� ��� � �����

�� �� � ���� -������% ���� ��� �� ����� �� &�� �� ��������� �,����� ��#

�� ��� �������� �� � ��� � ����� � ���� � �� � ������� ��� �� �� ������ ��� ��

������ � ����������� �������� G��� �� .���� G9�9# 4H% ��� �� ����� ���� ���

�� �� � ���� � ���������H�

J� �������� -����� ��� ��� �� �������� &�� ��������� �� �� ���� ���#

������% � �� ��� �� ��&���� � ������� ��� �������� �� �� ������ ����

����������

1.1. PROGRAMACIÓN PARALELA A

Tiempo

Procesos

Figura 1.1-F4. Paralelismo temporal

(� ������ ����/ ��� �� �� ����� � ���� ���� �������� ����% ! �� ��

���� � �� �������� ��������% �� &�� ��� ��� � ��� �������� �� ���� ���#

� ��� �� �� ��������� �� ������� � ��� ����� �� ��������� � �� �,���� ��

� �� �������� ��������% �� �� ���� ��� -������� �������� ����� ���� ���#

�� � ������������� �� -������� ����������� -�� ��� �� ������� ��% �� ��

���� ��� ���� ����������� ���� � ����� �� G��� �� .���� G9�9# 5HH� C���� ���

�� &�� ��� � ������ ������ �� ���� ��&���� �� ���� ���� ���� ����������

����������

Tiempo

Procesos

Figura 1.1-F5. Paralelismo real

: CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

������ �2,*.2- ,* 342<4/0/+18( 3/4/.*./

0� ����� � ��&� �� � ��� ������� ����� �� ��������� &�� ���#

� �,������ ������� �� � ������� ����% ! ��� ������� �� ���� ����� .���

��� �� ������ ���� �� ���� ���� 0��� � � �� �������� �� ���� ��� � ��� ��#

����� ���� ��� ��� &�� ������� ��� �� ������,� � ��&� ��% �� ���������

������,�% ��� �� &�� �� ��)� � ���� ��� �������� ! � �������� ���� �

���� � ��� ���� ����������� � ����% �������� ! ����� � �����% ��� ������#

� �� ���� -�� � ��� �� ���� ���� ! ����� � ���� � �� ��������� (� ����� �� �

�� ��� � ������,�� ���� FORTRAN% PASCAL% C% ADA% ���� 2 � �� ��� ��&� ��

�������� ������� ��� ��!�� ������, �% !� &�� �� �D���� � ������� ����

�� ������,� � ��&� �� &�� ���� �,������ �������� ����������� �� ����#

�� � �� ������� �� ����� �����������% ��� �� &�� ���� ��� ! �������� ���� �

�� ��������� �� � ���� � ��� �� �� ��&��� � ���� -���������� 2 � �������%

�� ������� �� ����� ����������� ���� ��&� ��� ��� �/���� �� � ��� ������#

����� &�� �� ������,� � ���� � ��� ������� ���% ���� ��������� �� ������� ��

�� �� �������� ��������� � �+�� �/���� ���� ������������� ������ � ��

����� � ����� � &�� �� �� � ��% ��� �� &�� �/ ���� �� � ���% ��� ������ ��

��� ����� ������� �� ! ��� &�� �� ����� �� �� ���� � �����,���

(�� ����� ���� � ������� �� ������ �� ��� ����� ������� �� ��� �� #

� ���� ���N

2���-����

'�� �����

(�� ����� ���� � ������� �� ������ �� ���� � �����,�� ��� �� � ��#

�� ���N

$�������

����� � ����� �������

���� �/���� �� � �����,��

1.2. SISTEMAS PARALELOS <

0� ����� ��� � ���� �/���� �� � �����,��% �� �� &�� ���� �� � ��� ����

���������� �� ��� ��� �� � ���� �����,� ! ���� ��� �� ����� ��� �� ��������

� ������ � �� ���,���� � ������ &��% �� �������% ������� ��� ��� ����-��

������ MPI KAL� (�� �����,�� ��� ���������� ! �/���� ���� ��� �,�����% �� ��

�������� �������� ����� �� �� ���� � �����,��% � �� ���� ��� �� �-��#

��� �� �� ������� x �� ������� y% �� �� ���� � ��������� �� � �� �� �����

������� ���� ��� �� MPI ���� ��� �� �� �-����� �� �� ������� (� -���� �

������ � ���� ����� ��� ���� ������ ������� ��� ��� ������ �� �� ��������

;�

���� �1-)*0/- 3/4/.*.2-

J� � ����� �������� �� �� ���,���� � ����������� � �� ��� � ���#

����� ���� &�� ����� �����,�� �������� ������� ���� �������� �� ��������

�������� ����� ���� &�� ��� ����������� ����� �����,�� �������� �������

�� ������� � &�� ����� ��������� ��� �� � � ��� ��� 2 �� �� �� -���� ���

����/ ���� ����� � ��� ���� ����������% �� � ����� �� �� ����� ������� ��

���������� ��������M ��� ���� ���% � �� �� �� -���� ��� ����/ ���� �����

-������� �����������% � �+� � ����� �� �� ����� ������� �� ����������

����������� � ������� ������������ ���������������� �� � ����� ��� �� � ��

�� ���� ���� ����� � � ����� ���������

0� � �� � � ����� �������� ����� �� �� ����� � ����� � � �� � ���% �� ����

���� ��� ������� � � ��� �� ��

J� � ����� �������� �������� � ������� � �� �&��� &�� ���� �� �� ������

� ����&� �� ��������� �� � ����� � ����&� �� ����� � � ��� ����� �

���D�� (� �� � ����/ �� �� ��������� �������������% �� �� ��!���� � ���

�����% ��� �� � ����� � ������� � +��4��� &�� �� �� � � ��� �� ����������%

&� �� ���� ������� �������� � ������� � ������� ! ���� ���� ��� ���� ��

� ����� � �� D� �� � ��� �� ���� ��� ��������� G��� �� .���� G9�;# 6HH�

= CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

P

Cache

BUS

MemoriaGlobal

P

Cache

P

Cache

P

Cache

Figura 1.2-F6. Memoria compartida

J� � ����� ���� ��������� � ����� � ��� �� � �� �&��� �� �� &��

��� ��������� �� � �� �� ���� � ����� � �� ���% ����� ������ ��� �����

����������� �� ���� ��� �� � ��������/ ��% �� &�� �� -���� � ���� � � ��

�D���� � ����������� ��������� ����� ��% �������� �� ������ ���������

G��� �� .���� G9�;# 7HH�

RED

P

Cache

P

Memoria

Cache

P

Cache

P

Cache

Memoria Memoria Memoria

Figura 1.2-F7. Memoria distribuida

$��� �� �� ��� ��� ������� � � ������ +����������� ���-������ ��� � �#

����� � ��������� �� �������� ! ��� �� ��

������ �4?61)*+)64/ ,* -1-)*0/- 3/4/.*.2-

2��D� �!�� K9L% ��� �� ����������� ��� ��� ���������� � ��� �������#

��� ��� �� �D���� � 3�,�� � ������� ���� &�� ���� �������� �� � ���

� ���� ! �� �D���� � ���� �� ��� &�� ���� ������ � �������������� 0� ��

1.2. SISTEMAS PARALELOS B

��&� ������� ��� � ���� � ��� �������% �� ��������� �,����� �� ���� 3�,�

� ������� ���� ! ��� ������� �� ����� ����� �� ���� ���% ���� ��&� �������

�� ����� � ���� 22� G��� ������� ��% �� ���� ���H�

(� � �� ���� ��&� ������� ���� ��� �� ��� ��� ��� ������� �� � �� ���,����

� ���� �� ����� ��% ��� �,����� ����� �� �D���� 2 � ���� ��� ���������

� �� �������� � ���� ����� � ���� � �� ���� �� �� �� ����� ��������� �����

��������% ! ��� ������� ���� ��� �� ���� ��������� � ������� ! ��� �� �����#

������ � ����� 0� ��������� � �������% &�� �� ���������� �� ��J ������#

� ����% �,����� ��� ������� ���� � �� ��������� 2 ��� � ��� ������� ����

� �� �������� ���� �� �������% �������� �� +��� ��� � ��� �����������

� ����% &�� ��� � ����� �� ��� �� ���� ���� 0��� � �� � ��&� ������� ��

������ ���� 2'� G� ��� ������� ��% ���� ���� ����H�

(� ��&� ������� 2'� �������� �.� ��� �� �� ���������� �� �D���� �

������ ���� ����� ����� &�� �� ������� 2��������� &�� �� � ��� ���

���� � � �� &�� �� ��&� ��� ���� �� ��� ��� �� �D���� −1, ! ������ �����

�� �D���� 3 � ��� ��� � ��� ���������� 0� ��� ��&� ������� 2'�% �����

������ ���� ���� +������ �� �� ������ 0� �� �� ���� �� ��������� � �������

� �� &�� �� ���� ���� �� ��� ��� −1 ��� ��� � ��� ��������� � �� ���� �M! �� �� ������ � �� �������� > � ��� ��������� ������������ 0��� �� ��

������� ����% !� &�� � ������ �� ���� �� �� �� �� ���� �����% ��� �� &��

�� ���� ��������� ���� +���� &�� ��� ������ �� ��� ���� ��� ����� ����

��� ���������� 0� ���������� �% ��� ��������� � ���� �,����� �� � ���

������� �� �� k -������� ������� ����% ��� �� &�� �� ������� ��&� ��� k ������

(� ����� �� � �� � � ����� &�� �������� �� ��&� ������� 2'� ���� ��� ��

������� � ��� ���� ���������� � ���� ���������% �� �� &�� ��� �������#

�� �,����� �� ���� � 3�,� � ������� ���� ! �����,� ����� ��� ���� �� �����

0��� ��&� ������� �� ������ ���� ''� G�D�� ���� ������� ����% �D�� ����

����H% ! �� �� ��� ������� ���� ��� ���������������� �������% �� �

� �� 3�/ � � � ! &�� � ��� -��� ������ ��� -������� ������ ������� ����#

��� � ����� ��&� ��������% ���� ���� ��� �� � ��������������� ����-������#

������% �� � � �� ���� 3�/ � � �% �� ��� -�� � �������� ��������� ����

��� ����������� ''�% &�� ���� ��� 22� � 2'��

(�� ����������� ''� ���� ��� �� �,���� �� � � ����� � � ��� � ���#

��� ���� � -���� ��������% � � ������� �� �� ����� �� ��� -�������� ����� ��

9? CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

-���� � ��������� ��� ���������� 2'� ! ��� ''�% �� ��� ������� 0�

�������� � ������ &�� �� ����� ���� � � � � -������� ��������� ���� ���

���������� ''� ��� � � ������������ 0� ���� � ��� ������������ �#

��������� ��� ��� ��� �� ���� � ��� �� ��������% ! �� ���� ��� ������ �����

���� ����������� �� ������ 0��� ����� �� ������ ���� 2�'� G�� ������#

��% �D�� ���� ����H% ! ���� ��� �� ����� ��� �� ������ �� �� � ��� ��������

G��������H &�� �����,�� ����� ��� ���� �� ����� ��� ������ � �� ��������

���� ���� � -������� ��� � ������ � �,������ �� � ��� ��� -������ �D����

� ����� ����% ���� �� ����� � �� �� � ��� ��������� 0� ����� � ��������#

� �� 2�'� �� ����� .�� ���� ���� ����� ����� ! � ����� ����� ��� ��������

������ ���� ��� ����� ��� ��� ��� ���

J�� ������� ��� �� &�� �� ��� ���� �� ���� ��� 2�'�% �� �� �����

�'� G����� ���������% �D�� ���� ����H% �� ���� ���� ��� �� ���� ��� �����#

� �� � �� ��&��)� �D���� � -������� ���������% &�� �� ���,���� ��������

����% �������� ���.���% ���� 0� �� ������ �% �� ��!���� � ��� ��� ��� ����

��������� ��� ��)��� � �� ��� ������ � ��� ���� ���� 2�'� � �'��

���� �@)41+/- ,*. ,*-*03*A2 3/4/ 342<4/0/- 3/4/.*.2-

J�� � ��� ���������� &�� �� ��� ���� ���� �� ���� ��� �� ��������

��������% �� �� �D���� � ����������� �� ��� ������ �� �� � �,������� � �+�

�D���� �� ��� � ��� �� �� ����� ����������� ��� &�� ��3�,�� �� �/ ����� � !

����� � � �� � ����� ��������� 0� +��+� � +���� ��� � �� ���������%

��������� �� ����� �� � �������� ���������% ! ���� ��� �� �D���� �

�����������% �� ��� ��� ��� ��� �� ����� � � �������� ���� �� � ������

0� ��������� �������� �� �� +��4���% +� ���� � � ������� ��� �� �������#

���� �� �� ���� � ��� ��� 2 � �������% �� ���� ����� � ���� ����� � +��4���

+� ������ � �� ����� � � ���-����� � ������ ��������� ��� �� ��� ����#

��� ���� �� ���������% �������� � ! ������� � �����,�% &�� ��� ����� � ��

���������� �� ������� ���% ���� ��� ���� ����� �� ������� � �� ��������

���������

���� &�� �� ���� ��������� � ���� ����������% � � � �� �� � ���� �

�,���� �� � �� ��������% ���� ��� -���� ������ �� ������ &�� ����� �,�#

1.3. MÉTRICAS DEL DESEMPEÑO PARA PROGRAMAS PARALELOS 99

������� � �������������� �� �/ ��� �� ����� � ���� ���� � ��� �� ����)�

� ��� ������ �� &�� ��� � ��� �� ��������M � � �������% �� � �� ����

����� �� ���� ������� ���� ��� ��� ��� �� �� ����)� � ��� �����% ! ���

���� �� ���� � �� �������� � � �� ��������N

Gr =tcomp

tcomm,

��� tcomp �� �� � ���� � ������� � ��� �����% ! tcomm �� �� � ���� &��

�+� ����� ����� �� ���� ����� ����� ��� ����� K9L�

���� �� ���� � �����,��% ����� ��� �� �� ���� � ��� ���� ����������%

�� ������� ���� � �� ����� � ����� ��� ��% �� � � &�� �� � ���� ���� ��

����� ��� �� �������������� �� � �� .��� ���

���� �������� �� ������� ��� �� ������� � ��/ � ��� �� ����� �� Gr = tcomptcomm

.

0� �������% �� �������� � ���� ����� ���� ��� �� �D���� � �����������

&�� �� �� � ���% � � ������� �� ������� ����� ��������� ��� ��� -�� � ��� ��

�� �������� �% �� �� �% �� ������� +���� ��)�� �����������

������ �� �� ������� J�� �� � �� ��� � ���� ����� �� ����� �� � �#

���� ���� ��������� ! �� � ����� �� ���������% �� �� -����� � ����� �

G�������H% ������ ��� S(n)% ! �.� � ����

S (n) =ts

tp

��� ts �� �� � ���� � �,���� �� �� �� ���� ���������% ! tp �� �� � ���� �

�,���� �� �� n ����������� K9%;L�

���� �������� ��� �,���� �� �������� ��� ��� �,���� �� ������� ��% ��

�� � �� �� ��,�� ����� ��� ������� �� ����� �% ���� ������������ �� �� ����

���������% ������ �� ����� ��� �� � ��� ���� ������������ �� -���� ������#

��% &�� ���� ����� ����� � ���+�� -����� �� ��� �� ����������� ������� ���

0� �� ���� � � ���� ��% �� -����� � ����� � S(n) ���� ��� � ��� �� ���� ���

� ��� ����� � �� ����� ����

S (n) = Número de pasos computacionales utilizando un procesadorNúmero de pasos computacionales utilizando varios procesadores

9; CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

0� ��/ �� ����� � S(n) �� n% ��� n �� �� �D���� � ����������� G�����

��� �����H�

S(n) =tstsn

= n

0/ ���� ������� -�������% ����� �� ���� ���������� G��� �� .���� G9�># 8HH%

&�� ������ �� -����� � ����� � � �� ��� ��� �� ��������% ��� ������ ���N

9� ��� ��� ���� ���% ����� �� ���� ��� ����������� ����� �����,����

;� 0,���� �� � ������ ���� �/����% &�� �� � ���� &�� ���� ��� ����� ��

������� �� ��� ��� ��� ���

>� $ ���� � ����� ��� �� &�� �� ������ ���� ��� �� �����,���

Tarea 3

Tarea 4

Tarea 2

Tarea 1

Esperando para enviarun mensaje

Mensaje

La inclinaciónindica el tiempo quetarda el mensaje enllegar

Figura 1.3-F8. Sobrecarga

������� ����� � 2���� ����� � &�� ��� ��� ��� �� �������� ����� ��� �����

&�� ���� ���� ��� �,������ �� �� ���������% �� �� �% &�� �� ���� ��� #

� � �� ������ ���������% � �� ���� �� �� ���� �� ����� ��� ��� 0� ��������,� ��

� ���� ����� � �,���� �� � �� ��� ��� �� &�� �� ��&� ��� ���� �,������ �� �����

��� ��% �� ���� �� -���� �� ��� �� ! �� �� ����� ��� f � 2 �� �/ ��� ����������

�� ���������� �� ������ �� ����� �������� � �� ��� ��� ��% �������� �� � ����

tp ���� ������ � ���� �� �������� �� � �� ��� ��� �� ��� n �����������% ����

�� ���

tp = fts +(1 − f) ts

n.

1.3. MÉTRICAS DEL DESEMPEÑO PARA PROGRAMAS PARALELOS 9>

0� ���������� �% �� -����� � ����� � S (n) ���� ���� � ��� � �� � �� ����������%

S(n) =ts

fts + (1−f)tsn

=n

1 + (n − 1) f.

(� ����� �� ����� �� �� ����� � ���� �� (�! � ���+� G��� �� .���� G9�># 9HH�

f

st

� � nts /f1�

pt

n

Sección paralelizableSección serial

procesadores

� � stf�1

( ) Un procesadora

( ) Múltiplesb

procesadores

st

Figura 1.3-F9. Ley de Amdahl

0� �� .���� G9�># 10H �� ������� � S(n) ���.��� ������ �� �D���� �

����������� ��� �� ���� ������� � f % �� �� &�� �� ���� ����� �� &�� ��

(�! � ���+� �� ��� � ��� ��� �������� �� -����� � ����� � &�� �� ����

������� �� �� � ����� ��������� �� +��+� �� �� � ����� ��� �� �D���� ���

��� ��� ����� � �����������% �� ����� �� -����� � ����� � � ��� � 1f % ��

�� �%

limn→∞S(n) =

1f

.

9@ CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

Número de procesadores

S n(��)

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

n

f =�0.20

f =�0.0

f =�0.05

f =�0.10

Figura 1.3-F10. Speedup contra número de procesadores

���+� ��� ���� ���������% �� �� ���� � ��� �)�� ��������% ���� ���#

����� �� ��� � � ������ ��� �� ���� ���������� 2 � �������% �� ����� ��

�� �� ������ ���� �� � �� ��� � ���� � �� � ����� �������� K9%;%>L�

��������� (� �.� ��� � �� �� ��������� ��������� � ��� � ������ ��#

�������% �� �� ����� ��� E, ! �� �� �.�� ����

E =ts

tp × n,

�� ������� ����� 0 �� �/����� �� ���� ��� �� � �� ���� ��������,�%

E =S(n)

n× 100 %.

(� �.� ��� � � � �� -���� �� � � ���� &�� ��� ����������� ��� �����

���� �� ������� K9%<L� 2 E = 50 %% �������� ��� ����������� -����� �����%

�� ����� �% �� � �� �� � ���� &�� ��� �� �������� (� �.� ��� � ��/ ��

�� �� 9??O% ! ������ ����� ���� ��� ����������� ����� ������� ������

��� �� � ���� &�� ��� �� ��������

������ 0� ����� �� � ���� � �������� ���� �� ������� ����

Costo = tiempo ejecución × número de procesadores

1.3. MÉTRICAS DEL DESEMPEÑO PARA PROGRAMAS PARALELOS 9A

0� ����� � �� �������� ������� �� �� �� � ���� ts � �,���� ��� 0� �����

� �� �������� �������� �� ������� ���� tp × n K9%<L% ��� �� � ���� tp �

�,���� �� ��������% ���� �� ���

tp =ts

S(n).

0� ���������� �% �� ����� � �� �������� �������� ���� �� �� ���� ���#

����� ����

Costo =tsn

S(n)=

ts

E

���� ��� ����� 0� �� ���� �� �� � ��� ���� � ��� &�� �� ��)� �� +��#

4��� �������� ���� �� ���������� �� �D���� � ����������� ���� ��,���� ��

��� � ���� �� �������� ����% �� &�� ���� ����� ��� ���� �� ������� � �

� �� ��&� ������� � �� +��4����

0� ���� �� ������� � � �� ���� �� �� � ��� ���� � ��� &�� �� ����� ���

���� �,������� � �� ��������� � �� ��� �� � ��� ������ &�� �� ����� ���

�����% ���� �� �,���� �� ���������

(� ������� � � �� �� +��4��� �� �������% ���� ����� ���� �� � ��

��&� ������� �� -��� ����� �� � ����� ��������� ��� ���� ���% �� ������� � �

�� �� ��-�4��� � ����� ��� �������� ���� ��� ������������ ���� �� ����

��)� � �� �������� ��������% !� &�� ��� ��� -�� � �� .��� �� ����� ���

���� &�� ���� ������ �� � ������ ��������� � �� � ��� ������������

��� �� ���� ��� "����-��� �������� �� ��������� ����� �� ��� ���#

������ � ������� � � ���� ������� &�� �� (�! � ���+� �� �� ��� � �� .��� #

�� ���� ���� ��� �� -����� � ����� � &�� �� ��� ��� �� ��)�� �� ��������

���������

2 �������� ��� s �� � ���� � �,���� �� � �� ����� ��� �� � �� ������#

��% ! ��� q �� � ���� � �,���� �� � ���� ��� ������ ��������� �� �� ����

���������% ! .,���� �� � ���� ����� � �,���� �� ������� �� �� �������� ��#

�� �� ��������� 1% �� �� �% s + q = 1% �������� �� -����� � ����� � ���� ���

9: CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

�������� ����

S(n) =s + q

s + qn

=1

s + 1−sn

���� �� -����� � ����� � ��������� ��� "����-���% �� � ���� p � �,���� ��

� ��� ��� � ��� ������ ��������� �� ��������% ��� ��� ���������� 2 �+���

.,���� �� � ���� ����� � �,���� �� �������� �� ��������% ���� �� ���������

1, �� �� �% � s + p = 1, �������� �� � ���� � �,���� �� �� �������� �� ��

���� ��������� ��� ��� s + pn, ��� n �� �� �D���� � ������ ���������� 0�

���� ���� �� -����� � ����� � ���� ��� �/������ � �� � �� ���� ������%

S(n) =s + pn

s + p= s + np

= n + (1 − n)s.

0��� �������� �� �� -����� � ����� � �� ������ ���� (�! � "����-��� K9%;L�

���� �,�����% ���������� &�� �� ��������,� �� � ���� � �,���� �� ��#

������ � �� ����� ��� �� � �� �������� �� �� 5 %, �������� s = 0.05 ! p = 0.95.

2 �� � ���� ;? �����������% �������� �� -����� � ����� � � ������ ���

�� (�! � "����-��� ��

S (20) = 20 + (1 − 20) (0.05)

= 19.05,

�� ��� �

S (20) =20

1 + (20 − 1) (0.05)= 10.256

&�� �� ��� ��� ��� �� (�! � ���+�� ��� �� &�� �� (�! � "����-��� �� ��� #

� ��� ��� �������� �� -����� � ����� � &�� �� ���� ������� �� �� � �����

���������

1.4. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS 9<

���� �42<4/0/+18( 3/4/.*./ 241*()/,/ / 25;*)2-

(� ��������� �� �� ����� � ��,���� ����� � �� ����� � � ��)�� !

������� � ��-�4��� ��� ����� ���� &�� �� ����&��� ��� � �� �������� ��

! �� ������,� +�����% ���,����� �� ������,� ��&� ��� 0��� ���� � � ��

��������� �� �� ����� � ��,���� �� +��� ����� �� ���� �� ��)� � ��-�4���

��������% ��!� ��)� ! ��������� �� ��� �� ������� ����� ���� K=%9AL�

0� ��)� �� ����� � ��,���� �������� ��&� �������� ��������� ���� �

��-�4���% �� &�� ��&� ��� � �� ��� �� ������� ��������� ��� � ��� � ���%

��� �� &�� �� ������� ��� ������� ���� ��� ���� �� ��������� ����� �

��� � ������ �� ������ � ��,�����

(� ����� ��� �� ��� ���� � �����,�� �� �� ������� ���% ������ ��������

-�� ������ � ��� ����� ���� ��� ��� � �,���� �� �� ����� � ��,����� J��

������ � �� ����� � �� ��,���% ���� ���� ����� ���-��������� �� ����

�� ����� � �� �����,� � �+� ��,���% ����!��� ��� �������� �� ���,����

� ����������� ' ������ &�� �� ��������� �� �� ����� � ��,���� �� ��-���

�� �� �������� ��% �� ���������� ���� ! �� +����� � � ���� ! �� �� K9@LM ��

������� ��� ���� ��� � ��� ��������� � ������� ! � ����� ��� ��� �� ���,��#

����� ����� �����������% ��������� � &�� �� ��,��� ���� ��� � ��� ���� ���

�������� �� � �� ������� K=%9:L�

(� ��������� �� �� ����� � ��,���� �� �� ���� ��� � ��������� �� &��

�� �� ������ � �� ���� �� � ����% ��� ��� ���% �� �� ��������� � ��-�4�#

�� �������� ! ��� �� � K9:L� 2�� ����������� ��� �� ���� ����� �� ��� +����#

� ���� �/������� ���� �������� ��� .������� ���������� �� �� ��������� ��

�������� ! ��� �� �% �� � �� �� �������� � &�� ����� �� �� � � �� ������#

�� �� ��� -���� ��� ����������% ������!��� ��� ������� � ����������� ��

� ���������� ���

0� ��� �� � �� ��������� �� �� ����� � ��,���� ����� �� ������ ���� ����

�������� � ��� ��������� � �������� ! ��� �� �� (� �� �� � ����� ���� �#

��� �� �� ��� ����� ���� ���% ! �� .����� ��� �% �� �������% �� �� �������

����� �� �� �� ����� �� ������� ���% �� &�� +� �� ���� �������� ������ ���

� �/���� ���� � ������,�� �� ������ � ��,���� ���� �������� � �����

���� ���� � ��� �������� � � ��� + ��� � �,���� �� ���� ��,���� �� ��������

9= CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

������ ��� (�� �������� � ���� �� ����� � � ����� ����� ����� ��% ��,����#

��� � ���D� ����� ��� � � ����� ��� ��� (� ����� � � ��� �������� �

����� ����� ���� ��� ��� ���� ����������� ��� ��� ����� ���� ��� ���

� �� �,���� �� � �� �������� �� ����� � ��,����% �������� �� �� �����#

� �� � ������ � �� ��,���% ! ����������� ���� �� ����� � �� �����,��

0��� �� �� ������ ���� �� ������ �� ������� K=%9:L�

������ �5;*)2- B 0*(-/;*-

(� ��������� �� �������� �� ����� � ��,���� �� ���� �� �� �������� ��

���� ���� � �� ������� ���� �� ��,��� &�� ��������� ���� ! ���� � ��M !

� �� ������ �� � ������ �� ��,���% ���� �� ����� ��� � ����� ��� ��

���� ���������� � ���� ����/ ��� �� �� �� ������ ���� ������� ��� �������

� ��,����% �� �� &�� �� ��,��� ��������� ��������% ! ��� ������� � ������

����������� ����� ��� ���� ����� ���������

��� �� ��������% ��� ��,���� ����������� ��� ��� ! ��������� &�� ���#

����� �� �� � �� �� �/ ��� �� ����� ��� ������ ���� ����� �� ��������%

� �� ��� �������� �� � ��� ��,����% ��� ������ �������� �� �-����� �� ��#

���� �����,�� G��� .���� G9�@# 11HH� 2� ���������� �� �� ���� �� ���������

D� ��� �� ����� � ��,����% ���� �� �������� �� ! �� +����� �% ��� ������ ���#

� ��� ����� .���% ���� .��� ! ���� � ��� ��� ���� �� ���� � ��� ��,�����

Mensaje

Canal

Procesador 2Procesador 1

Objeto Objeto

Figura 1.4-F11. Objetos y mensajes

1.4. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS 9B

0� ��� ��� �/������ �� ������� ��� � � ��� ��,��� � ���� �% �� �� ��������% �

�� ������ � � ���N ������,��� � ������,���� �����% ��� �� � ��� � ��� � �

����� �� ��������% ��� ��,��� ���� ��� ��� �� � ��� ���

���� � ���� ����������� 0� ������� ��� ������,��� �� ��.��� � &�� ���

��,��� ����� ��� �/ ����� � � �������� ����� �� � ���� ���� �� ����� �� (�

�������� �� ����� ��,���� �� ���� �� �� ���� ����� ���� � ����� ��� �� !

� ����� ��� �� ����� ��������% ������ �� �� �������� �� ��������� ���� ����

����� ! ������ �� � �����,��� 0� ������� ��� ������,��� �� ��! ���D� ��

� ������ ��� �� ���

���� � ���� ����������� 0� ������� ��� ������,��� �� ��.��� � �� ��� � #

� &�� ��� ��,��� ���� �� ����� ��� ������ �����������% �� &�� �� ���� ��

����,�� ��� �� ��� ���� !1� �����,�� �������������% �� � ���� �� � ��� �

�������� � .��� 0� ��������� �� ��� � &�� � � ��� ������,���% �� ������#

� ��� ���� ���� ����� � -���� ��� �� � -�� ��� ��� �� ������� �� ������� ��� �

� ��� ������,��� �� � � �� ���������

������� ������� � �������� 0� �� ����� � ��,����% �� ����� ���������� ��

�� � � ����� ��� �� � �� ��������� '� ���� ��� ������ �� ����� ��

����� ��� ��,���� &�� ����������� �� ���� �� � �+� ����������� �� �� ��������

�� ���,����� �� ����� � ��,���� ��� �� �������� ���� �� ��� ��&� �������

���������

J� �������� �������� �� ����� � ��,���� ���� ��� �� �� ���,���� � ��#

,���� ��� -������� � ����� � ��� ��� 0� ��,��� �� ��� .�� �������� ���� ��

�� � �������� ����� �� ��������� 0� ���� ���� � �� �� ����� �� � ���

� ��,����N ��� ��� ! ��� ����

(�� ��,���� ��� ��� ��� ������ �� ������� � �,������% ��� ���% ��� ����#

�� �� �������� ��� ��� � ����� ��,���� ��� ���� � .���� � ��� ��,���� ��� ���

���&�� � � ��������� � ������ ! ������ ����% ���������� �� �������% ��

&�� ���� �� �,������ ��� ������ �� �������� ��� �� ����� �� ��������� (��

��,���� ��� ��� ��� ��� ������� �� � ��� ��������� �� ����� � ��,���� ! ��

������� ���% !� &�� �� ����� �� ������� ���� �� ��,���% �� &�� +��� ��� ���

�������� ��� � ���� � ��� � � ! ������ �% ��-������ ��� ��������� �

��������� ! ����������� �� � ��� ��,�����

(�� ��,���� ��� ��� ��� ��,���� ������� ������ &�� ������� � �� ���,����

;? CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

� ���� ! ������ &�� ����� ��� �,������� �������������% ! ��� �� �����

����,�� � ����� ����� ���� � � ����� ��� �� ����� ��� ��,���� ��� ����

0� �� �������� �������� �� ����� � ��,����% ��� ��% ���� �� ��&��)� �D#

���� � ��,���� ��� ��� ���% ! ��� ��� &�� -����� �� ���������� �������� ��

��������� ��� �� �����% �� ��!���� � ��� ��,���� ��� ��� ���% �/ �� ��� ����

��������� ����,��� ��� ��� ��,���� ��� ����

���� ������� � �� �������� �� � ��� ���D� ����� ����� ���� (�� ��#

���� ��� �� � ���� ���� ������� � �� �������� �������� �� ����� � ��,����

���N �� ����� � ������ �� ��� �� � ! �� ����� � ��������

������ �. 02,*.2 ,* +2.*++18( ,1-)41561,/

0� ������� ��� � ���� �� �� �/���� �� �� � ��� ���� ���� � � �� ��� ��� ��

�� �������� � �� ������� ����� �� ���,���� � ����� (� �/���� �� � ����

�������� �� ������� ��� �� ����� � ��,����% �� ���������� ��� �� � � ����#

�� �������� ����� � ��� � ��� �� ������ &�� � ���� �� ����� � � �,��������

�� �������� ����� �� ���,���� � �����

���� ��� �� ������� ��� � ����% �� ����� � ������ �� ��� �� � ��

���� �� �� ����� �� � ��� ���������� � ���� ����� �� ��,����% �� -����

� � ��� � ���� ����������� $���� ����������� �� �������� ! ��� ��!�� �����

-������� ������������ 0� ����� ������� �� ����������� �� ,����&� �� � ���

�������� ����% ��� �� &�� ���� �� �� ��������� �� � � �� ������ ���� � ������ !

�� ���������� �� � ��������� ��� �� ���

0� ����� � ������ �� ��� �� � � ��� �� ������� ��� � �� ����� ���� ���#

��������N ������ ��% ��������� ! �� ��� � �������� ����� J�� ������ �� ��

�� ���,���� � ��,���� ��-����� ��� �� ���� �� ���� ������� ��� ������ ��

�� ���� � ��� ��� � ���� ����� � ��� ��� �� ! �� ���,���� � ��������������

�������� ������ ��� ��� � �� ��� � �������� ����% ��� ������ ����� ���#

� ������ ���� ����������� ��� ��� �� � ���� � �,���� ��� (�� ��������� �

�� ������ �� �� �������� ����� ��� ����������� ��� ���% �� � ���� �� ����� �

��� ��� �� &�� ����� �� �� -���� �� &�� ��� +�������

(� ,����&��� � �������� ���� ������� �� �� ����� � ������ �� ��� #

�� � �� ���� ���� �� &�� ��� ������ � ��� ������ �� ����� ��� +������

1.4. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS ;9

��� ���� ������ ��% � �� &�� ���� �� ��� � � �� &�� ��� �������� � ��� �����

���� +����� ����� � ���� � �� ���������� � �� ������ ��� (� +�� � � �

��� ������ �� � ���� � � ! ����� ��� �� �������� ��% �� ���� �����% � ���#

������% � ��� ���� ���������� � ��� ���� 3�/ � � � �� �� ��������� �� �

� �� ������ ����� ��� ���� � ������% ������ �� ����������� � ����% ��� �� #

��% ���� �� �� ���� � �� � �� ����� � ��������� �� ���� ���� ��������� ���

.��� ����� ��� ����(0 G����#�������� �������� �� ( ����! -�� 0���� ��H%

��������� �� C++% ! ��!� .��� � �� ������ ��� ������ ���� � �����

0� �� ����� � ������ �� ��� �� �% ����&� �� �����,� ��� �� � �� ���#

����� � ��� ������ �� �� ��� � � ! �������� ��� �� ��������� &�� ����,�

��� �������� �� ���� ������ ���� � � �� ��� ��� �� ��������% �� ����� � ��

�������� �� ������ ��� �� ������ ��% �� &�� � �� .�� &�� ��� ����� ����

��� ��� � ���� ��� ��������� � �� ������ �� �� -���� ��������% ���� ��% &��

��� ��������� ��� ���� ��� ����� � ��� ��������� &�� ������ 0� �� ���� &��

�� ��� ��� �� � ��������� ��� +��������� ����� ��� �����������% �� ����#

����� ��������� &�� ���� ��� ������������� ��� ������� �� ��� ��� ��

�� � ���� � �,���� �� �� ���������

0� ������� ��� � ����% ! �� �/���� �� ���� ��� ������ �� ��� �� �% +�

�������� ��� ��� +����� ���� �.� ���� ! ������� ���� �� �������� ����

� ������ ���� ��� � ����� $ ��� �� �����,� � &�� �� �,���� �� ����

���� ����� ����� �� ��&� ��� ��� ����� � ������� � ���� ��� �� ��

������ �. 02,*.2 ,* /+)24*-

(�� ��,���� ��� ��� ����������� ��� �� � � �������� ����% ! ��� ��� #

��� �� �� -���� ��� �� ���,���� � ��,���� ��� ��� ! ��� ���� (�� ��,����

��� ��� �������� �� �-����� �� ����� ��� 0��� ����� ���� �� �� ��� � ��

-���� ��� ����� ��� ��,���� ��� ��� � ��� ��� ���� 0� ��)� � ��� ��� ����

����� �� ��,���� ��� ��� ! ��� ���% ���� �� ������� � ��� ��� ���� ���������

� -������ �������� ��

0� ����� � ������� �� ���� �� �� � ����� ������� � ������������ ���

��� ��&� �� � �����% &�� ���� ��� �� ��� ������ �� � ��������� � �����#

��� ����% ��� ��� ��������� �� ��,��� ��� ��� ��� ��,��� ��� �� ������

;; CAPÍTULO 1. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS

��� �� ���� � + �� � �������M ! �� ����� � ��� ��,���� ��� ��� � �� ��� �

�������� ���� -�� ���% ����� ���������� �� ����� ��� �� � ������

0� ���� � �����,� �� �� �� � � ������� �� ! ���� ��� �� ����� ��,����

��� ���N ���� ��� �� �� �����,�% �� ��,��� �� ��� ��� �� �� �,���� �� � ��

����� � ���� ��,��� ��������% ��� ��� ���������� �������� �� �� ���� �

�����,��

0� ���� ����� ��� ��,��� ��� �� �� �� ��������% �� ���� �� ����� �� ���

����� ��,���� �� ���� �� ���� � �����,��� � ��� ��� � ����� ���������

�� ��� ������ ���� �������� (�� ������� ��� ������ �� � ������ ��!� ����#

������ �� ���� ��� �� ������� ��� �� ����� � � �,�������� �� ���������

0� ����� � ������� �� +� ���������� �� ���� ��� ��� � � ���������

&�� ������ � ��� ��������� � �� ��������� �� ������� �� ��� � ����% +����

-����� �� ���� ��� � ��������� �� �������� �� ����� � ��,����� �� ����

-����% �� ������ �� �� �������� � ����� �� ������ � ���� � �� �������� �

���������

� � �������% �� �������� �� ���� ��� ���� �� ���,���� � ������� ����

&�� ����� .��� ����������� � ���� ! ����� ����%

programa = estructura de datos + algoritmos�

������� �� �)�� �� �������� � ���� �� ���� ��������� G��$H% �� ���� ���#

� ��� �� �� ����� ��� � ���������� ���� &�� ���� �� ����� ��� ! ���������

�� ������ � ��� ���� ! � ��� ����� ���� � �� ��������%

TDA = encapsulamiento(estructuras de datos + algoritmos)�

0� ���������� ���� ���� �������� � ���� � -������� �������% ����#

��� �� ������,� � ��������� ��� 0� ���� ��� �����% �� �������� � ����#

��� ���� � �-����� �� �� �� � �� ���� ������ � �� ������ � ��� ���� � ��

�������� ��� ����� � ����� ���������� 2� ���� ��� �������� &�� ��� ���� !

����� ���� � �� �������� ��� �������� ���� ���� ��������% ����� ���� � ���

������ ����� � ������ (� -���� � ������ �� ����� �� �� ��� ����� �� ���#

����� ����� � ���� �� �������� ��� ���� ���% ��� ���� ! ����� ���� � ��

�������� ��� ��������� ���� ���� ��������% ����� �� �� ������ ��� ������

������

1.4. PROGRAMACIÓN PARALELA ORIENTADA A OBJETOS ;>

(� �� � � � � � ��� ���� � �� ��������% ��� ���� �� ������� �� �

��� ������% ����-�� � ���������� ��% �� �� &�� �� ���� � ��� � ��� � ����

���������� � ��� � ��� �� � � ��� � �����

�� �� ����� � � ����� ����-���� � ���������� ���� ���� � ������% �����

�� �������� � +����� �� �� ��� ��� �� +����� � � ��� ���� �� �� ���� ���

�� ���� � ��� � ���� ����������% �� ������� ��� ��������� � ����� ! ��,����

0������� �� ��,��� �� ��� �/���� �� �� �������� � � �� � ��� ���������%

�� �)� ��� �� +����� � � �����

Objeto = TDA + Herencia�

� ���� � �� �������� � ��,���% �� ������� �� �������� � ����� ����

�� ��,��� �� &�� �� �)�� �� �������% ��� �� &�� �� ����� �� �� ��,��� ��

�,���� ���

Actor = Objeto + Proceso�

0� ����� � ������� �� ��� ���� � ����� � ��� ��&� ������� ��������� J�

����� ���� ���� ������ ���� ��� ��&��)� ����������% ��� ����� � � ��#

����� ����% �� ���� �� ��������� ������ � �� ��� �� � � �������� ����%

�,������� ��� ����� ���� ������������� ��� ����� ������� &�� �� ����������

�� ����� ������������ ���� ���� ����� � � ���% �� ����� �� ��� �/���� ��

�� ����� � ��,����% !� &�� ���������� �� ��� � ��������� �� ���������#

� �� ! ����� ������ ����� ��% �� ���� ����� � ������ �� � �����,��� 0�

�������� � ����� �� ��� ��&� ������� �������� �� �� �������� � �� ������ ��

� ���� � �� �������� � � �� � ��������% +���� �� ����� � ��������

0� ��&� �������� ���������% �� ����� � ������� � ��� �� ����� � � ���#

� � � �� �,���� �� � ������� �� ����������� ��� ����� ��� �� � ����� �

������� � ! ��� �� ��

/3>)6.2 �

��������� � ��

���������

0� ��&��� � ���� � ����� � �� �� �������% �� ����� ���� �� ������ ��

����� �� ! �� � ����� �� � ��������� � �������� ! � � ��� ��% ���,� ���� ��

�� ����� �� � �� ���������� ��������� 0� ����� �����/���% -������������� ��

��&� ��� � ��� ���� ���� � � �������� ����� � ��� ����� ���+�� ����

���� �� �� ��������% ! ����� �������� ���� ��� ���������� �� �� ��� ��

� � ���� ��������� 0� �� ����� � � �� ��� ��� ����� � ����� ��� ��% ��

������� � &�� ��� �������� � �� � ����� �� ���� ������� � ���� �� ������� �

� ������ J�� � ����� �� &�� ����� �� ������� ���� �������� ��� ����� ��

�� ���������� ����������M ! �� �� ��� ���� � ��)�% ���� &�� �� � ����� ��

�� ���� ���� ���% �� ������� � &�� �� � ���� ��&��� � ��� �� ����� ��� ����

J�� � ��� �� ����� ��� ��� ���� ����� ��� �� ������� -�� �� � ����� ��

���� ����� � �� ��������� ���� �� �� ��% �� ���� ���� ��� ��� ������� ��

� � ��� ��� �� � �� �����-��� �� ����� �� ���� ������� 2 �� ���� ���

&�� ��� ���� � � 9 � ��� �D� ��% �� ���� � ����� � ���� ������ � ����

��� � ����� �� ������� � �� -������� ���������� �� �� � 5 × 108 ������

0� ������� ��&��� � ����� ��� ���� �� ����/ �������� � 200 ������ ����� ����� 3������% ��� �� &�� ���� ��� ����� �� ��� ������� �� 1011 ������ �#

��� � ����� 3������� 2 �� ��&� ��� +���� �� � ����� �� ���� �� � ���� � 7���% ��� �� �������� � 1 � ���� �� ��� ����� ��% �� ����� ��� 104 �����

;A

;: CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

�� �� � ���� ! 1015 ������ ���� � ����� 3������ �� ������ 2 ��� ��������#

�� ����� � ����� � 100 '���3���% �� �� � �-���D� 108 ������ ���� � �����

3������ ��� ������% �������� �� ��&� ���� 107 �������% ���� �� 100 ���%

���� ������ � ���� �� ������� ������ ���� +���� �� ������� �� 10 � ����� ������� ����� ��� ���������� &�� �����,��� � 1.7 $���3���% �� �� �% &�� �-��#����� 1.7 × 1012 ������ ���� � ����� 3������ ��� ������M ! ����������� ��

���� ��� ��������� ��� ��&� ��% ��� �� ���� ���������% ��� ���� ���� �

�������� (�� ����������������% ���� �� �C�P% ����� ������ �� �� ��)�

���� ��������� SMP� '�&� ��� ���� �� ���� ����% ��� ����� ������� ���#

��� ���� ��� �� ���� �����M ��� �� &�� �� +�� ����� ����� ��� ���� ���� ������ �

���� ������� ��������% ���� �� �� ���� � ��� ���� ���������� ���������

��� ����� ���� � �����,��

���� �6.)1+2036)/,24/

0� ����� � ��&� �� �������� ������ ���������������� ������ � ��

���,���� � ����������� � ��� �������% ��������� ��� ��� �� � ��#

�� ����� �� ��� ���������� �,����� �� ���� � ��������� 0��� ��������

���� ������� � �� ����� � ����� � �� ���������� �� �� &�� �� �,�����% !

���� ����� !1� ��� � � �����,�� ����� �� ��� (�� ������� ��� ���� ��#

��� ����� ��� ����� �����������% ! �&� ����� � ���� ! ���� � � �� ����� ��

�������� 0� ��� ��� �����% �� ����� � ��� �� �� �����,� ����� �� ���� ��

����� ���� � �� ����� ��� �� � ��� ���� ! �� ���.��% ! ���� ��� ������

�� ����)� �� �����,��

J� ��� ���� ����� � �� ���� ����������% ���� ��� �� &�� �� ������ �

�� ����� � ����� G� ��� ���H �� ����� ������� &�� �� ������ � ����� ��

������� G -������ ���H% �� �� �% &�� �� ������� ! �� ���� ���� �� ����� �

����� �� ����� ������� &�� �� ����� ! ������ �� � �����,��� 0� ���������� �%

�� ������� &�� �� ������ � ��� ���� ������� ��� ��� -�������� &�� � ��� ����

�������� 0��� ���� �� ������ ��������� ��� ��� ���������� �� �� ��)�

� ��-�4��� ��������% ���� ��,���� �� ��� � �����

0� ���� � �����,�� �� ������������� �� ����� � ��������� �� ��������

��� �� � ��� �� �� ������ �� (�� ��������� ��������� ������ �� ���� �

2.1. MULTICOMPUTADORA ;<

�����,�� ��� � � ����� � ��� ��������� ������ �� ��������% �� ����� ��

����� �D�� ���� ������% ��� ��� � ��� ������ ��������� ��� ���� ��������

0� ���� � �����,��% ��� ������ ��� ��� .���� ��� �� ������ D� ��% � �#

��������� ��� ��� �����,�� ����� ������ 0� ���� �������% �� ���� � �����,��

.��� �� ����� � �������� �� �� ����� ��� ���� ���� �� �����-����� � �

����� ��� �,�����% �� ��� � ��� �� ���� � ������ �� canal x% �� ���� ��

�����,� � �� tarea 9<�

0� ���� � �����,�� �� �/���!� �� ����� �� ��� �� � ������% �� �,���� ��

� �D�� ���� ������ ��� �� ���������% � �� �,���� �� � -������� ���������

��� -������� ������� 2 � �������% �� �� ����� �� �� ��!���� � ��� � ������ �

���� � �����,�� ����� �� �D���� .,� � ������ ��� ��� �� ��������% ! ��

���� ��� �� ����� �� � ������� �� � ������ ������ �� �,���� ��� 0��� � �� �

� ������ ����� ����������� ��,� �� ����� � ��������� �� ����� � ����

� ���� �������� ��������� ����� G2�'�H% ���&�� ��� ����� �,����� �� � ���

�������� ���� ����� ����� -������� ����� 0� ����� 2�'� �� ��.� ����

���� �������� �� ���� � ����� � ��������� ��� ��������� �� ��������% ����

���� ��������� .������� �� �� ��������� � ������� ����� ���� ����������

0� �� .���� G;�9# 12H �� ������� ��� ���� ���������� ��� ��� ���

���� ��� � ��� ��&� �� � ��� �������� J� ��� ���� ����� ����� ���

����� ��� ��� ! ��� � ��� �����,�� � ������ � ��� �� �������������

Interconexión

Figura 2.1-F12. Multicomputadora

0� ��� � ������ ���� +����������� � � ������ �������� ������ ����#

��������� ��� ��� ��% ���� �� ���� ������� �������� ���� ��� ��% �� +�

������� � �� ��� ������� ��� �� ���� �� �������� �� &�� ��&� ��� ����

���� � � ��������� (� �������� �� �������� �� � ������ +����������� ��#

;= CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

������� ��� ��� ��% ���� �� � ��� ��� ��� ���� ������� �� ���� � �������

� ��� ���� � ����� � �������

���� �/-2 ,* 0*(-/;*-

J� ����� �������� ���� �� �� ������� ���������� � ��� � ��� � ������ �#

��� &�� �� � ���� ���� ������� � �� �������� K@%9<L� 0��� �� &� ��� �� � &��

�� ����� � �� � ���/ � � �� ������,� � ��������� �� �� ������.��M ��� � ��%

�� ����� �������� ���� �� ��� ��� � ���������� &�� ���� ��� �������#

��� �� ����&� �� ���������� ������% ��� ������� � �� � ����� ������ ���

(� -�� � � ! �-��� � � � �� ���������� �� � �� ����� �������� ����%

������ � ��� �������� ! ����������� ��� � �� �����������

������ �2,*.2- +2036)/+12(/.*- 3/4/.*.2-

(�� ������ �������� ������ ��������� -����� ����������� ����� ����% !

����� ��� -����� ��� � ��� �� �������N ��� ����� � ������� � � ��� #

�� �% ��� ����� ��� �� �������� �� +��4��� !1� ��-�4���% ���� 2 � �����#

��% ����� ��� -������� ������ �������� ������ ���������% ��� ��� �� � ����

�� � ������� ��� � ����% �� � ����� � ������� � ! �� � ���� � �����,���

���� � ���� �� ������ J�� � ��� �� ����� -����� � ������� ��� ���� #

��� ���� ��� ������������ -�� �� �������� ���� ��� ��������% �� ���� � � � ��

��� � ��� ����������������� (� �� ��� �� � �+� �������� ���� ���� ���

�� ������ ����� �� ������� � ���� � � �����% ! �������� � ����� �� ��� ����

������� ��� 0��� ����� � ���� �� ����� � ���� 2'� G� ���� ������� ��%

���� ��� ���H� (� �'Q; �� ��� ��&� �� &�� ������� �� ����������� �� 2'�

��� +��4���% � � ������� ���+�� ��&� ��� ������� �� ��� ��-�4���% ����

'�$(��% ���������� �+� ����������� ��M ��� �� &�� �+���% �� ������� ��� �

���� �� ��� �� ��� �� � ��������� �� &�� �� ��&� ������� � ��� ��&� ���

!������ ����������� 0� ������� ��� &�� �� ���� ����� ��� ����� ��#

����� ��� �� ������� � � ��� ����% � �� &�� �� ����� .��� �/���� �������

2.2. PASO DE MENSAJES ;B

��� �� ����������% �� ������ ������� ��� ��� �������� J� ����� � ���� ��#

����� ��� �� �� � ����� � ������� �% �� �� ���� ��� ��������� � ��� ������

�� ����� � � ���� ���� ������� �� � ������ � ������ ���� � ������� ! ��#

�� ����� J�� ��� ���� � �+� ����� �������� ����� ��� �������� � ����

����� � ����� ! ������� ��

���� �� �������� 0� ����� � ���� � �����,�� ���� ��� �� �� ���,����

� �������� &�� � ���� ��������� ����� � �����% ���� &�� ����� ����� ���#

�� ��� ����� �������� ��� ��� ! ��� � ��� �����,�� G��� �� .���� G;�;# 13HH�

0��� ����������� �� � �����-�� � ���� � �� ����� � ����� � �� �������% �

�� ����� � ����� � ����% �� ������ � ���� ��� ������ ���� �� ����� �����#

���� �� ����� .�� �� ��������� � ����� ��� ��% ���� ����� ������� �� ����

�� � ��� ����&� ���� (� ����-�� MPI �� ��� ���������� �� � ���� ����� KAL�

Red

Memoria Proceso

Figura 2.2-F13. Modelo de paso de mensajes

!��� �� ��"���� $��� �� �� ����� +���� ���� ��� ���� � ��� ������

����� ����� J� �,����� � ���.����� �� �� ������� �������� &�� � ���� ����#

� � ������� � ! �� ����� ��� ��� ���� ���,���� � ��������% �� � ���� ����

� �����,��� � ���� ����� �� �� ������ ���� �������� G��� �� .���� G;�;# 14HH

KAL�

>? CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

Red

Proceso Memoria�compartida

Figura 2.2-F14. Modelo de clusters

������ �*()/;/- ,*. 02,*.2 ,* 3/-2 ,* 0*(-/;*-

#������ ����� 0� ����� � ���� � �����,�� �� ����� � �����,�� ���

����������� ��������� ��� ��� �� � ����� � ��� � ��������� ��� ��M ���

�� &�� �� ���� �� � ��� �� ���� ��� ����������� ���������% � � ����� � �

+��4��� �/����

�"����������� 0� ����� � ���� � �����,�� �� ��! D� � ! ��������

���� �/������ ����� ���� ���������% ! ����� �� ����� ������� &�� ��� ������

������ �� ���� � �� ���� �������

�$�� ���������� (� ������ �� � ��������� ��������� ������ �� ����

� ����� ��� ��% � � �������% �� ����� � ���� � �����,�� ������� ��� ��

��,�� ������� � ��� ��-����� �� � ����� �% !� &�� �� ������� � ��� ������

����� � �� ����� � ����� ! �/���� �� � �� ����� � ������% �� &�� -�� � ��

��������� ������� � ������� ! ���� ���� �� �� � ����

%��������� (� ��� ��������� � ���� ���� �� ���� � �����,��% ! &��

��� ��������� �� ����&� �� ��� ���� � �������� �� ��������% �� �� ��� #

� ����� (�� ��J ������� +�� ��,���� �� ����� � �� ��������� ��� ��

��&� ������� ������% � �� ���� �� ��� �� ����,� � ����� � ���+� ! ��� ��

,����&��� � �� ����� � �� �������� 0� ���� � �����,�� ������ �� ������#

���� ��� -���� �/���� �� � ���� �� ���� ��� �� �������% �� &�� ���� ��

2.3. LA MÁQUINA VIRTUAL PARALELA >9

�� ���� ���� ! �� ����,� � �� ����� �% �����,�� ������������� ����� ���

����� ������.��� �� ���� ��� �� ����� �)� � ��� ����% �� &�� ���������

�� ���� � � ����� � ! � �������� ���� � � .����� �������

0� ���� � � ����� �� �/�� �� ��� &�� �� ����� � ���� � �����,�� �� ���

� ��� ��� �� � ���� ���� �/������ ����� ���� ���������% ! �� �� ��� �������

� ������� ��� �� �� ������� ���� ���������� � ������

���� �/ 0:?61(/ 914)6/. 3/4/.*./

0/ ���� ���+�� ��&����� � ��-�4��� ���� �� ��������� �� �������� � #

�� ��� �� ����� � �������� �������� ��� ��� 06.)1+2036)/,24/� $�� ���

�� �� ���� ! �� ��� ���� ������ �������% �� �� 0:?61(/ 914)6/. 3/4/.*./

GPVMH ���������� ��� 8�5 C �� ��� ���� (�������� ��� (� PVM ������� ���

�� ��� ���� � ��-�4��� ���� �� ���� � �����,�� ����� ����������� +���#

������ � +�����������% ! � ��� ��� ������ �� � � ������� &�� �� ����� � ����

�� � ��� ��� ������,�� C � FORTRAN� 0� �/����� ��� &�� �� �� +� �� � �� PVM%

�� ��� �� ���� ����� � &�� �� �D�� �� ! ����� ��� 2 � �������% �/ ���� � ���#

���� � ���� � �����,�� &�� ��� �� ����% ���� �� �'Q'�( ���� �� � �����

���� ��������� C21:??? 2�#;�

8���� ��� ���� ����� ��� � ����� ���� ������������ ��� ����-�� �����#

��% ������ MPI% ���� �� ���� � �����,��� '��+�� ���������� ���� �

���� ����-�� �� +�� ������� � ���� -������� �����-����� ! ��� ���� ���

����� ����

0� �� PVM% �� ���������� ��������� �� ����� ���� �������� �� ��������

��% �� ��������� ��������� ��� �������� ���� ���� �� �� C � FORTRAN% !

�� ���� ��� ���� �,�������� �� �� � �� ������.�� � ���������� &�� ���#

���� �� ���� ����������� 2 ���� D�� �� ���� ��������� � ��� ������ �� �

����������� +���������% �� �������� �� ���� �� ��������� ��� ���% ! ��

��� ��!� � ��� ����������� &�� ���-����� ��� ����� ���� � �� ���� ���#

������� ���� ������� ��� ��&� ��� +�����������% �������� �� ��������

����� &�� ���� ����� ���� ��� ���������� �� ������.���

0� ���,���� � ����������� &�� ������� �� ���� ���������� ���� ��

�� ����� ���� �������� �� ��������% ��� ��� �.� � ����� � ������ �� ���#

>; CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

������ 0��� �� �� ���� � �� PVM% �� �� &�� �� ����� � ���� ��� ������ ����

���� +���� �� ����� �� �� ����� ��� � ��� � ������� � ����������� ���#

� ���� �� �� ���+ ��M ���� �������� �� �� �)� � ��� ����������� ��� �� �

� ��� ������� &�� ������� ��� �� ������� � �� � ��� PVM�

(� .���� G;�># 15H ������� �� ���.����� �� ����� ���� �� ��� � �������#

� ����% ��� ��� �� � ����� � ���� �� �������% ��� �������� �� ����� ���

� ������ � ��� ����-�� ���D� �������� ��� �� PVM�

PVM daemon

Aplicación

PVM daemon

Aplicación

PVM daemon

Aplicación

Figura 2.3-F15. Paso de mensajes entre computadoras usando la PVM

0� �D���� � �������� � ������ &�� �� �,������ �� �� PVM ���� ��� ��!��

&�� �� �D���� � ����������� � ��������% �� ���� �� ��� ���� � �����,� ����

������� � ��������� ������ �� ������� ��� �����������

(� .���� G;�># 16H ������� �� ���.����� �� ����� ���� �� ��� � �����#

��� ����% ��� ��� �� � ����� � ���� ��� �� ��������% ��� �������� �����#

� �� �� �� � ��� �� � ����� ����� ����� � ������ � �� � ��� ����-��

&�� �� � ��� ��� �������� ������� ���� ����� ������ 0� ����� � ��������

���� �� ��� ����� ��� �� +�������� ����� ��� �������� !� ���� ������� �

��������

2.3. LA MÁQUINA VIRTUAL PARALELA >>

PVM daemon

PVM daemon

PVM daemon

Figura 2.3-F16. Múltiples procesos ejecutándose en cada computadora

(Modelo de Clusters)

������ �/ 0:?61(/ 914)6/. 3/4/.*./ ,* ����

��� � � &�� �� +� ������� � ���� ��������� �����-�����% �� ��&� ��

� ����� � JAVA �� ��� ���� �� ��������� � ��� ��� ���� ���������� ��� &��

JAVA ������ �� ��� ���� ���� �� ���������� �� � ��� ��� ���� ��������� ��

����� ���&�� ��� �� � ������ � ��-�4��� �������� ������ -���� � �����#

��� �� �� ���� � �� � ����% �� ��!���� ����� ��,�� � ����� �� ���,���� �

��������� &�� ������� �� ���� � �����,�� � ������ �/���� �� ! �� �����

� ��������� �� � ����� � ��� �� �% ���� �� PVM�

(� PVM �� �� ��-�4��� &�� ���� �� � ��� ������ �� � � ������ +�������#

���� ��������� ��� ��� ��% ���� UNIX 1 NT% �����,�� ���� � -���� �� ����

� ����� ��������% ��� �� &�� �������� ��������� &�� ��&� ���� ���� ���� �

� ������� ��� �� ����� � � ���� ��� ��� 0� �������% ����� ���� ������#

��� � ������� ����� ��� ��������� � ��,� �����% �������� ��� �������� �

��� �� ������������

>@ CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

(� PVM ������ �� ���������� � �� ���,���� � ��� ��� ���� �� ����� ��

� ������% �� ����� ��� �� � ���� ! �� ���� � �����,�� �� ����� �������M !

���� �� �� ��� � ���� +����� ����� ���� ����� .��� ! ����,�� ��� ������ ��

� � ������ �� ��� ������ �� �,�������� ��� ��� ��� ����� (�� ��������� ����#

� �� ��� �� ��������� �� �� �� �������� +�� � � ����������% ���� �� �

��� � ���� +�� �������� &�� ��&��)�� �������� � ����� ���� � �����,�%

����� ������� ���� �� ��� � ���� ���������� � ��� ����� ������������#

����� �� ��������% �� �� � ��� �� � �������� ������� ��% ��� �� �� ! +�#

����������% ��������� �� ��% ���� ��� ���� ���������� �������� � �����%

� ��� ��� �� ��������� ���� �� ��� ��� �� ! ���� �� ���������� �� � ������

��� �,�����% ��� �� �������� �� � �� ��� ��� �� �� +� ��������� &�� ��

�������� � � ��� ������ ����� �� ��� ����� KAL% ��� �� �����% !� &�� �����

������� � �� ������ � � �� ��% �� &�� .����� �� ��� �� � ��������� �� ��#

��� �� ���� � �����,�� ����� ��� ���� �� �������� �� �� ����������% ��

+��������� � ������� �� ��������� � ������ � ��

JAVA ������ ����������� ��� &�� �������� ��� ������ +����� ����� ����

����,�� ��������� �+������� � �� ��������� �� �� �� ��������� ���� ��

�������� �� � �� ��� ��� ��% JAVA ������� ��� ��� ����-�� �������� ���� ��

��� � ������ J���� + ��� �� ��� � ��������% �� +� ��������� �� �����

���� ���������� �� �������� � � �� ������ � � �� ����� ��� �� ! &�� ���� ��

��� �������� � ��� .�� � ��� ������% ���� �� ��� �� ���� ��� � ����

�� ��� ����� ��������� � ����� � ��� �� �� ���� �� ����� � � ��� � ��

���������� ��% JAVA ������� ��� �� ���� ���� � ������ � � �� �� �� !

��� ����-�� � ��������� �� GAPIH ���� �� ���� � �� � ��� ����� ��� ���� �

�� ���

0/ ��� �� ��������� ���� �� �� JAVA &�� -�� � �� �� ��������� �� �� ��

��������% �� � ���� ������� � ��� ����� ��� � ���� ������,�� 2 � �����#

��% �+� ��������� �� � �� ��� � ������� � �� PVM% ��� �� &�� +��� �������

� ������ ��� ���% �� �� �% � ������ ���� ����� � �� �����-���� K;?L� �

����� � &�� �� PVM �� +� ������ � ���+�� �����-�����% �� ������� � �����#

� ��� ��� ��������� -������% �� &�� �� �� ������� ! &�� �� �� �� � �� ��&� ��

� ����� �������� �� ���� �� �� JAVA ����% ��� �� &�� ���������� ��� ������

��� ����

(� ��&� �� � ����� �������� ���� �� �� JAVA ���� GJPVMH ���� �� ��� ����

2.3. LA MÁQUINA VIRTUAL PARALELA >A

������ � � � ��� ���������% ��� �� &�� �� ���� �,������ �� � ������ UNIX%

Macintosh% Windows NT% ����

&��� �'� (� ����-�� � ��������� �� &�� ������� ��� �� JPVM �� ����� �#

�������� � � ��� � �� �������� ��� �� PVM% ��� ��� � � ���� ! ��,���� ����

�/������ ��� ����.� �� � �� ���������� JAVA� ���� �� �� PVM% �� ����������

��������� �� ����� �� �������� � ��������% �� �� ���,���� � ������ ��#

����� ���� �����������% ��� ������ �� �,������ �� ���D� ��������� ���� ���

� ������ ��� � ������ ����� �� ���� ��������� �� ����� �� � ������ � � ������

! ���� ����� �����,�� ����� ��� ������� 0� �� JPVM ��� ������ �� ����������

�� ������,� JAVA% ! �� ����� �� � ������ � � ������ ! �� ���� � �����,��

��� ������� ����� ��� �� � �������

(� ����-�� �� �� ���% ��� �� � � �� ���� �� ���� ��� �� ��!���� � ��� �#

������ ���� � �� JPVM% �� �/������ ��� �� ����� jpvmEnviroment� ������ ��

� ���� ����� ��� �������� ��� ��� ����� ���� ���������� � ���������� ���

�� � ����� � �� JPVM ! ����� ������% ������ �� �,���� �� � �� ��� ��� ��� (��

��,���� � �� ����� jpvmEnviroment ����������� ��� ������ � ����� ��� ��

����� �� � �����% ! ��� ��� .���� � ������ D� �� ��� �� � � ��,����

� �� ����� jpvmTaskId% �� -���� � � ��� � ���� �� +��� �� ��� .���� �

������ ����� � �� PVM� ' ������ ���� D�� �� ����� ��� ��� ����� � ����� ��

���� ����� � ����� ��� ��% �� JPVM ���� �� � ��� ������ �������� � ��#

���� ��� �� �� �D���� � � ��� � ����/ ����% �� � ���� ��� �� ������ ��

� jpvmEnviorment� 0� ���� ����� �D�� ���� ������ � ������ � �� �� ���

���� �����% � ��� .�� �� ������� � ���������� ������ �������� ��������%

&�� ����� ��� ���������� ����� ��� ��� (� ������� �� � �� ���� ����� � ���

3�,�� � ����% �� � �� �� ����� � � �� ��� � ��� .� ������� �� �� ��� ��

�����,��

��� ������ � � �� ����� jpvmEnviroment ���� ��� �� ���,���� � ��#

���� ���� �� ����� �� ! ����� � �����,��� ��� �,�����% ��� ����� ����

����� ��� �� ��� � ������� �� ����� pvm_mytid()% ! ���� �������#

�� �� ��� ���� � �� JPVM ������� pvm_exit()� (� ����-�� ��� �� � ��

����� jpvmEnviroment �� ������� ������ ��

class jpvmEnviroment{

public jpvmEnviroment(); // Constructor

>: CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

public void pvm_exit();

// Identificación

public jpvmTaskId pvm_mytid();

public jpvmTaskId pvm_parent();

// Creación de Tareas

public int pvm_spawn(String task_name, int num, jpvmTaskId

tids[]);

// Envío de mensajes

public void pvm_send(jpvmBuffer buf, jpvmTaskId tid, int tag);

public void pvm_mcast(jpvmBuffer buf, jpvmTaskId tids[],

int ntids, int tag);

// Recepción de mensajes

public jpvmMessage pvm_recv(jpvmTaskId tid, int tag);

public jpvmMessage pvm_recv(jpvmTaskId tid);

public jpvmMessage pvm_recv(int tag);

public jpvmMessage pvm_recv();

// Probar disponibilidad de mensajes

public jpvmMessage pvm_probe(jpvmTaskId tid, int tag);

public jpvmMessage pvm_probe(jpvmTaskId tid);

public jpvmMessage pvm_probe(int tag);

public jpvmMessage pvm_probe();

// Configuración y control del sistema

public jpvmConfiguration pvm_config();

public jpvmTaskStatus pvm_tasks(jpvmConfiguration conf,

int which);

public void pvm_halt();

};

������� �� ������� ���D������% �� �� ���� ��� �� &�� �� ����� � ��#

�� ��� �� �������� ���� �� JPVM% �� �� ����� �� � ������ � � ������ ����

���� ��� �� �,���� �� ��������� (� ����� �� � ������ �� �� JPVM �� ��������

��� �� ����� pvm_spawn()% �� ���� ���� ��� ����� ���� ���������% � #

���� �� ������ � ��� ����� � JAVA% � � ��� ��� �� CLASSPATH �� � ������

$��� �� ��� �� �� �D���� � ������ &�� ���� ������� ! �� ������� �� � ��

2.3. LA MÁQUINA VIRTUAL PARALELA ><

jpvmTaskId% �� �� ���� ����� �������� ��� ��� .������ � ��� ��� � ���

������ ����� ��� ��� ����� ����� ��� �� ����� pvm_spawn() �� �,�����

�� �� ���� � ������ � � �� ��&� �� � ����� � JAVA� (� ������ �� � �����

������ �� ��� ��� �� �� �� �� ���,���� � ����������� ���� ���� ���� ��

JPVM�

���� �� �������� 0� ���� � �����,�� �� �� JPVM �� ���� �� �� � ���� ���

������ pvm_send() ! pvm_recv() � �� ����� jpvmEnviroment� 2 � �������%

����� � &�� ��� ���� ����� ��� ��� ���% ���� ��� ���,������ �� ��

��,��� �� � �� jpvmBuffer� ������� � ��� buffers �� � ���� ��� �� PVM% ���

��,���� � jpvmBuffer ��� ��� ����������� ���� ��� �����,�� � �� JPVM�

(� ����-�� � jpvmBuffer ���� ��� �� ������ ��� ��� � ������N ��� &��

����&����� ��� ���� �� �� buffer ! ��� &�� �/����� ��� ���� �� buffer�

0/ ���� ���� ���� ��������� ! ������ ���� � ����� ������% ���� ���� ��� � ���

�� � � ��� &�� ����,� �� ��&� �� � ����� � JAVA% ! ��� �� ����� �� ����

����,�� ��,���� � �� ����� String� ���� ������ ��� ��������� �� ���/�� ���

������ ���� ��� �� ����&� �� � �� � ��,���% �� �� �% ��,���� &�� ����������

� �� ����� Object�

class jpvmBuffer{

public void pack(int v[], int n, int stride);

public void pack(int s);

public void pack(float v[], int n, int stride);

public void pack(float s);

public void unpack(int v[], int n, int stride);

public int upkint();

public void unapck(float v[], int n, int stride);

public float upkfloat();

. . .

public void pack(String str);

public void pack(Object d[], int n, int stride);

public void pack(Object d);

public String upkstr();

public unpack(Object d[], int n, int stride);

public Object upkobject();

};

>= CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

J�� ��������� -����� � ����� ��� buffers � �� JPVM ! �� PVM% �� ��

���������� �/���� �� � �� ���������� � ��� ���� �� �� JPVM� 0� �� PVM ��� ��

! ��� � � buffers �� ��� ����� ����� ������� ��� ��� ��� ��� pvm_pk*() !

pvm_upk*()� 2 �� + �� � �,���� �� ���� ����&������ �� buffer% ! ���� + ��

���� ����&������ ���� buffer% ��� + ��� ���� ���.����� �/���� ������� ��

����� �� buffer ����� � �,������ ��� ��� ��� � ����&����� ���� � �����

�����% �� ������� � ���D� ����� ��� � � ����� ��� ��% ���� �� ���&���%

���� �������� &�� �� buffer &�� �� ��� ���% �� ��� �� .��� ��� ���� + ��

� �,���� ��% � ������ �� ���.����� ! ����&����� ��� �� ���� � + ��� 0���

��&��� � ���� �� ������,� � �������� � ���� ������� � ��� ��� ����� 0� ��

JPVM ���� �������� �� �������� � ��� ������ � ���� ! �����% ����,���

buffers �/���� ���� (�� ������ ���� � ����&����� ! �/�����% ���� ��� �����

��,���� buffer% ���������� �� � ��� ��,���% �� �� �% ��� ����� � �� ����-��%

�� ���� � ��� .�� �� �����,� �� ������ ��� ������ ���� + �����

������� � &�� �� ������ � � �� �����,� +� � � ������� �� �� ��#

,��� �� � �� jpvmBuffer% ���� ���� ��� ��� �� � ����&� �� ����� �����

� �� JPVM% �� � ���� �� ����� pvm_send() � �� ����� jpvmEnviroment�

����� �� buffer &�� ���� ��� ��% �� ����� pvm_send() ��&� ��� � ��

��� .��� �� � �� ����� � �� &�� �� ��� ��� �� �����,� ! ���� �� �� �D����

������ � ��� .��� �� ������ �� &���� �� �����,�� (� ������ �� � �����

�� �� ����� �� ! ������ ��� �������� ������ � &�� �� ����� pvm_send()

�� �,�������

���� ��� � � �����,��% ��� ������ ���� �,������ �� ����� pvm_-

recv() � �� ����� jpvmEnvironment� J� � ���� ��� ���� ���� � pvm_recv()%

��� ������ ����� ��� � ��� �����,�� �������� �� �� ��� � �� ��� �����

� �� �� �D���� � ��� .��� ��% � �� ����� � �� � ����� � ������ (� ���#

��� �� � ������ �� ���&��� �� �������� +���� &�� �� �����,� ��� � ��� ����

���� ���� (� ���� �� �� ���&������ � pvm_recv() �� pvm_nrecv()�

(� ���������� � �� �����,� �� �.� � ��� �� ����� jpvmMessage� 0� ���#

��,� ���� ��� �� buffer &�� ���� ��� ��% �� ��� .���� � �� ����� &�� ��

���� ! ��� �� &���� ����������� ��� �� �D���� �������

class jpvmMessage{

public int messageTag;

2.3. LA MÁQUINA VIRTUAL PARALELA >B

public jpvmTaskId sourceTid;

public jpvmBuffer buffer;

RM

&�� ��������� ���� !� �� ,�% �� JPVM ���� ������������� �������#

��� �� JAVA% ��� �� &�� ��&� ��� � �� ��&� �� � ����� � ���� ������,�% ����

�,��������� �D� ����� �� �,���� �� � ��������� ����� �+� ��&� �� ���#

� �� �� ��� � ���� �� ����� �� � �� ����� �% �� ��� � JAVA ���� ������,� �

���������� �� � �� � �����% ������ � ���� � � ����� �����,�� ����� �&������

����������� ��� ����� ������,��% ���� �� C� ��� �,�����% �� ��� � + ��� ��

�� � ����� � ����� ��� ��% �� ��� ����� �� ������ �� �� �������� � ��� ��#

� � ��� �� ����� ���% &�� �� ���� ��� �� �+� � ������ 2 � �������% ������

� ������ ������ �� + ��� ����������� �� ������,�� ��� � ������ ���� C%

�� ������������ ������,� ! �������� � �������� JAVA ����� �� � ���� ���� ��

��� �� ����,� � + ���% !� &�� ������� ��� ��� ����-�� �� -���� ! ��� �#

��������� �� � �����% � ������ � ��� �� ���� �����-����� ��� �����,� ��

��&� �� � ����� � JAVA�

8��� �����,� �� �� ������ � � &�� JAVA ������� ���% �� �� ��� APIF� �

��� ���&�� ��� � ������ ������ �� ��% ����� ���� �� PVM% ��� ������������

��������� ����� ��� ����� � UNIX% �� -�� � ����������� � �����-����� ������

�� Windows� JAVA �� � �� ���� ������� ���� �-��� ��� ��� ����-�� �� -����

���� �� ����,� � ���� � �� � ����� ��� �� �� ���

0� �� PVM �������% �� ��� � ������� ������ ����� ������% �� � ���� ��#

��/ ���� TCP% ��������� � �� .��� ������� �� ��� � ���� ����� ��� ��� ����

����/ ���� �� � ���� daemons UDP� ��� �� &�� �� ���������� �� �� ���� �

�����,�� �� �� JPVM% ���� ����� �� �� ����� ��� �� ����� ����� ������%

�� � ���� sockets TCP ! �� ��� �� ��� �� � ��,���� ���� �� �����-����� � �

�����,��� ��� ������ � � �� ����� jpvmEnvironment ���� �� socket ���� #

�� ������ �� � � �� ��� ��% ! �/����� �� ������ �� ���� �� ! �� �D���� �

������ ����� � �� ��,��� �� � �� jpvmTaskId ���� �������� ��� �� ���� ���

�� ���� ������% ����� ��� ����� x ���� ��� �� �� �����,� � �� ����� y% x

� ��������� ������� � y �� � ���� �� ������ �� ���� �� ! �� ������ ������ #

� �� �� ��� .���� � y% ! ����� �� �����,� ����� ��� ����/ �� TCP �����

�� ������� � +���� �� �������

@? CAPÍTULO 2. ARQUITECTURA DE LA PLATAFORMA

�����������% �� JPVM �� � �� + ��� ���� ����,�� ��� ����/ ����% ! ��� �����%

�� ����� � �����,��� ��� ������ � � jpvmEnviroment ���� �� + �� ����

������� ����/ ���� ����� � ������ ����� ��� ����/ �� �� ������� ��� ��

+ ��% ���� ���� �� ����� + �� &�� �� ��������� � ��� � � �� �����,�� 0� + ��

�������� �������!� ��� ���� � �����,��% ��� �� &�� �� ���� ��� ��� ������ ��

� ������ �� pvm_recv()% �������� �+� ���� ����� � ���� ��� ��� ������ ��

� ����/ �� �����������

Hilo�deUsuario

Hilo�deUsuario

Hilo�de

Conexión

Hilo�de

Recepción�1

Hilo�de

Recepción�2

Hilo�de

Recepción�3

Solicitud�de

conexión

ConexionesTCP

Figura 2.3-F17. Comunicación de la JPVM

J�� ��������� ����������� �� � �� ���������� �� �� � ����� � ����#

� ��� ���� � �� JPVM% �� �� ��� � + ��� ������� ���� �� ������� �� �� .����

G;�># 17H% �D�� ���� + ��� � ����� � ����� �,������ ������ ���� � ������ ��

pvm_recv()� (� ���������� ������ � �����,�� �� ��� ���� ! �� ��� ������ ��

��� �� � ! � ����� ��� &�� ���� ��� ��� ����� ��� �� �D���� n � + ���

&�� ���� ����% ! ��� �� �D���� m � + ��� &�� ���� ��� ����� ����������#

��% ��� ������ ���� � ����� pvm_send() ��� � ����� ���� ! ��������� ���

+ ��� ������� (�� + ��� ����� ��� �� � ���� �� ��� ���� ��� �� � ��&��#

��� � ��)� �� ��� ��������� ���� �� JPVMM ��� �,�����% �� �� ���� �� �

������ �� � �� PVM% ��� ��� ������ �� � ��� �������� ��� �,������� ��

-������� �������� ! ��� + ��� ����������� ��� ��������� � ��� �������� 8���

��� � � � �� �� ��� � + ��� ���� �� ����� ������ � �� �,���� �� ��������%

���� �� �� ��&� �� � ����� �������� ��� + ��� GTPVMH�

/3>)6.2 �

�� �� ��� ������� �

�� ��������

0� ���� �������� ����������� �� ����� ������� ��% ��� ����� ���� -�#

���� ���� � ��� ��#2��5��% &�� ��� ����� �� 3�,� �������� ��� ������ ���

�� ����� ��� � -����� �� .� ��� � '��������5 ���� ����� ������ ����

���� ��� ��� �� ����� ��� ���� ��� ��� � ���� � �� -�������% ��� ����������

� � ���� ! �� � ���� � ��� .� �� K;>% ;:L� 2� �� .��� �� ��������� �� �����

���� ������� ��� ����� ����������� ���� ��� ��� �� ��&���� '��������5� 0�

�������� �������� &�� �� ������� ���� ���������� �� ����� ��� '��������5%

����� ��� ��,��� ����� ��� �� ��� ��� �� ! ��������� ���� � ��� �� �� ��#

��� ��� ����� �� 3�,� ����� � �� ����� �����������# ��������� 0��� ��������

������ �� &�� �� ������� �����������

����� ��� �� ��������� ���� � �� 3�,� �������� �� �� �� ����� ��&� ���

��� ��� �� ������ �� ���� �����,�% �� � � &�� �� �/ ��� �� ����� � ����

������ ��� ���� �� ������ �� � ��������� �� �� ����� ��� ��% �� ��������� ��

��������� �� -���� ��������% �� ����� ��� � -����� �� .� ��� &�� ��&� ���

� ��� ���� ���� � � ��������� 0� �������% ���� � �� � ��������� �� ��#

.��� �� � ���� ����� ���� ����� ���% ��������� ��� � ������ ������ ���

� �� UNIX ! �� ������,�� ���� Power C ! FORTRAN �������� G*� H% ��� ��

�� �� �� -�� � � �������% �� .��� ! �������% ����� � �� ��� �� � �� ��

�������� �� ! �� ���� � ��� ���

@9

@; CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

(�������� �� � ���� �� ���� �������� ����� ������ �� �� ������ � �+�&��#

�/���� �� �������� �� ���� 3�,�� ������� ���� ! &�� �� ����� ���� ����

���� �������� ���% � ���� ���% � � -������ � ������� �/������ K;>%;@%;<L�

����� �� 3�,� �������� �� ���� � ��� ����������� ��� ��� ������� �� � �/#

���� �� �� � � �� ���� � �� ��� ���� � ��� ������ �� �������% ���

����� ���� � ��� ��#2��5�� �� ������ ���� ����������� ! �� ���� �����#

���� ��� ����� �� ������ ��% �� �,����� �� ���� ��� �� �� ���� �� G��@H� 0�

���� ��� ��� �� �� ��������� �� ������� � ��� �� ��&� ��� � ������� �� !

�� � �/���� �� �� -���� � ���� ��% ��� �� &�� �� �/ ��� ����� �� ������ ���

���� �/- *+6/+12(*- ?6* 02,*./( *. C6;2

���� ������� �� �������� �������% �� ���� ���� ������ �� 3�,� �� -����

����� ���� � ! ������ ������� �� 3�,� �� -���� �� ����� ���� ��

������ �/ *+6/+18( 3/4/ ./ D240/ *-)/+12(/41/

2� &� ��� ������� �� ��� ��� �� ����� ���� � � ��� �� �� ����� ��� �����

�� 3�,�N ��� � (ρ)% ���������� � ����� � �� x (u)% ���������� � ����#� � �� y (v)% ���� �� (p) ! ����������� (T ) � ������ �� ��������

(� ����� ��9 &�� ����� �� 3�,� � ���� ���� ����� ���� �% &�� �� �� ��

� �� ������� G��;H ������� �� �� ���� �� � ��

∂F

∂x= J − ∂G

∂y, G9H

�� ���� �� ����� � �� ����� �� -����� �� �������� � ��� ��#2��5��% �� ��

-���� � ��������� �� � �� ����% ���� � ���� ���� ��� �� � 3� ��

�������� ���� G� �H% ���

9(� ����� �� G9H ���������� �� � ����� � ����� ���� -����� ����% �� ���� �� � F % G ! J�

3.1. LAS ECUACIONES QUE MODELAN EL FLUJO @>

F =

ρu

ρu2 + p

ρuv

ρu

(e +

V 2

2

)+ pu

G =

ρuv

ρuv

ρv2 + p

ρu

(e +

V 2

2

)+ pv

2�������� �� 3�,� �������� �� ! � ���� ��% � � -������ � ������� �/#

������% ��� �� &�� J �� �� ������ ����� ���� -�� � ��� ��� ��������% �������� �

��� �������� �� ������ ������� F % ����

F1 = ρu

F2 = ρu2 + p

F3 = ρuv

F4 = ρu

(e +

u2 + v2

2

)+ pu

���� �� ����� ��� ����� ���-����� ������.�������% �� ���� ���� �� � � e

�� ���� ��� � p% ρ ! γ% ���� � ���

e = cvT

=RT

γ − 1

=1

γ − 1p

ρ,

! ����� ���� �� ��� �� �� ��� ���� � 3�,� F4� ��� �� �����

F4 = ρu

(1

γ − 1p

ρ+

u2 + v2

2

)+ pu

=1

γ − 1pu + ρu

u2 + v2

2+ pu.

2 ��� .���� ��� ���� ��� ������� &��%

@@ CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

F4 =γ

γ − 1pu + ρu

u2 + v2

2

$��� �� � ��� ��������� �� ������ G ��� �������� ����

G1 = ρv

G2 = ρuv

G3 = ρv2 + p

G4 = ρv(e + V 2

2

)+ pv

���� �� + �� �� �� ��� ���� � 3�,� F4% �+��� ���� �� ��� � e �� G4% !

�������

G4 =γ

γ − 1pv + ρv

u2 + v2

2.

���� ������� ��� ������� � ��� ��� ����� �� � � ��� (ρ, u, v, p, T ), ��� ���# .����� � ��� ��� ����� � 3�,� F, ���� � ���N

ρ =−B +

√B2 − 4AC

2A,

���

A =F 2

3

2F1− F4,

B =γ

γ − 1F1F2,

C = − γ + 12(γ − 1)

F 31 ;

! ���� ������ ���

u =F1

ρ;

v =F3

F1;

p = F2 − F1u;

3.1. LAS ECUACIONES QUE MODELAN EL FLUJO @A

! .��������% � �� ����� �� � ����� �� � ��� &��

T =p

ρR.

���� -�� � ��� �� �� .��� �� ! ���� � �� �D���� � ��� ����� �� � ����%

�� +���� ��� ��������% ���� ��������� ��� ��� ����� � 3�,� G% � ���� � �

��� ��� ����� � 3�,� F � �� ���� ���% G1, G2, G3 ! G4 ����� ���� � ��� ��

���� ��� � ρ ! � F1, F2, F3 ! F4, ���� � ���N

G1 = ρv

= ρF3

F1

G2 = ρuv

= F3

G3 = ρv2 + p

= ρ

(F3

F1

)2

+ F2 − F 21

ρ

G4 =γ

γ − 1pv + ρv

u2 + v2

2

γ − 1

(F2 − F 2

1

ρ

)F3

F1+

ρ

2F3

F1

[(F1

ρ

)2

+(

F3

F1

)2]

������ �/ *+6/+18( 3/4/ ./ D240/ (2 *-)/+12(/41/

(� ����� �� -����� ��; &�� ����� �� 3�,� � ���� ���� �� ����� ���� �%

&�� �� ����� � �� ����� �� ������� G��;H ��

∂U

∂t+

∂F

∂x+

∂G

∂y= 0, G;H

;(� ����� �� G;H ���������� �� � ����� � ����� ���� -����� ����% �� ���� �� � F % G ! U �

@: CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

���

U =

ρ

ρu

ρv(1

γ − 1p

ρ+

u2 + v2

2

F =

ρu

ρu2 + p

ρuv(1

γ − 1p

ρ+

u2 + v2

2

)ρu + pu

G =

ρv

ρuv

ρv2 + p(1

γ − 1p

ρ+

u2 + v2

2

)ρv + pv

������ ������ ��� �������� � ��� �������� U, F ! G ���� � ���N

U1 = ρ

U2 = ρu

U3 = ρv

U4 =(

1γ − 1

p

ρ+

u2 + v2

2

=1

γ − 1p +

u2 + v2

F1 = ρu

F2 = ρu2 + p

F3 = ρuv

F4 =(

1γ − 1

p

ρ+

u2 + v2

2

)ρu + pu

γ − 1pu + ρu

u2 + v2

2

3.1. LAS ECUACIONES QUE MODELAN EL FLUJO @<

G1 = ρ

G2 = ρuv

G3 = ρv2 + p

G4 =(

1γ − 1

p

ρ+

u2 + v2

2

)ρv + pv

γ − 1pv + ρv

u2 + v2

2

0� ���� ����% ���� ������� ��� ������� � ��� ��� ����� �� � � ��� (ρ, u, v, p, T ),��� ��� .����� � ��� ��� ����� � 3�,� U % ���� �� � �� ������ �N

ρ = U1

u =U2

U1

v =U3

U1

p = (γ − 1)[U4 − 1

2U1

(U2

2 + U23

)]

T =p

ρR

���� -�� � ��� �� �� .��� �� ! ���� � �� �D���� � ��� ����� �� � ���� ��

+���� ��� �������� ���� ��������� ��� ������� � ��� ��� ����� � 3�,� F ! G%

� ��� ��� ����� � 3�,� U � ����������������% F1% F2% F3% F4 ! G1% G2% G3% G4

����� ���� � ��� �� ���� ��� � p ! U1% U2% U3% U4% ���� � ���N

F1 = U2

F2 =U2

2

U1+ p

F3 =U2U3

U1

F4 =U2

U1[U4 + p]

@= CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

G1 = U3

G2 =U2U3

U1

G3 =U2

3

U1+ p

G4 =U3

U1[U4 + p]

���� �/../ +2036)/+12(/. 3/4/ ./ D240/ ,*. +2(,6+)2

(�� ����/ ��� ���� ��� -����� �� .� ��� ��&� ���� &�� ��� �������� ����

+��+�� ����� ��� ������ �� � ������ �������� 0� ������� � ����� ������

������� � ������ � �� ����� � 3�,� �� ��� ������ (� ����� ��� �� �

��� ����� ����� �� ���� �� 3�,� ����� � � ������ � ��� -���� ������� ��%

�� �� ������ ��� �% ! �� -���� �� &�� �� ����� ��� �� ����� �������

�� ������ (� ����� � � ������� �� � ������ �� ����� ������ � �� � � !

�� ��,��� � ��������� �������% ���� �� � �� � ����� &�� ������ ������ ��

�� �������� ��% �� � � ��� �������� � ���� &�� �� ���� ��������� ���

����� �� ����� ���

(� ������� �� � ��� ����� ����� �� �� �� �������� ������ � �� ����� ��

� ��� ����� ���� &�� ��� ����� �� 3�,�� 2��������� &�� ������� ��� ���

����� �� �� -���� �� ������� ����� � 3�,�% ! ������� &�� ��� ����/ ��� ��

��� -����� �� .� ��� ��&� ��� ��� ����� �� -����% �������� �� ���������

��� ������ ����� � �������� ��� ����� ���� &�� ��� ����� �� 3�,� ����� ���

����� �� �� -����% ����� �� �����/�� � ��� ������ ��� -����� �� .� ����

0������� �� ����� �� �� -���� ��� ��� ����������� �� ��� ����� �� -����

������������ �����% ��� ����� ���� -����� ���� ���� ���� &�� ��� ����� ��

3�,�% ���� �� .����� ���� &�� ����� ��� ��� ���� � ���� �����-����� ��

������������

2 ���� ��� ��� ��� ���� � � � �� �������� � ��������� -�� ���% ���

��� ����� ����������� �� -���� ���� ��� ���� �� �� ����� -�� ��% �� �/ �� ���

3.2. MALLA COMPUTACIONAL PARA LA FORMA DEL CONDUCTO @B

����� ���� ������� ��� ����� ���� -����� ���� &�� ��� ����� �� 3�,�% � ����#

����� ��� �������� ����� ����� ���� �� �� ����� � ����������� (x, y, z, t), !�� � �������� ������� �� -����� � ∆x, ∆y, ∆z, ! ∆t� 2 � �������% �� �� ��!�#

��� � ��� ��������� ������ �� ���� �������� &�� ���� ������

)(xyz

)(xys

y

x

in26in42 in42

in10 in875.177 in125.299 in125.388

)()( xyxysz

Figura 3.2-F18. Plano físico del conducto

(� .���� G>�;# 18H ������� �� -���� �� ����� &�� � ��� �� ��&� ��� �

�/���� �� � ����� �� �� ����� xy �� ;BB�9;A � ! �� ��&� ��� � �+�&�� ��

9? ��

(� �����-����� �� ����� �� ���� ������ � ��� ��������� xy% � ��� ����#

����� ξη �� ����� �������� ����% ������� �� �� .���� G>�;# 19H% �� ��

� �� ����N

ξ = x G>H

η =y − ys(x)

yz(x) − ys(x)G@H

A? CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

, ji

1

, ji

ji ,1

{

}

�0

1.0

��

��

Figura 3.2-F19. Plano computacional

��� ���� �����-����� ��% �� �� ����� �������� ���� ξ ����� � 0 � L ! η � 0� 1.0M η = 0 ���������� � �� �����.� � �� �� ����� -�� ��% ! η = 1.0 ���������� ��� -������� ����� ��� �+��� ������ ������ � ���� ��� �������� ����� ��� �����

����������� �� �� ����� ξη� (�� ����� ���� -����� ���� ���� ���� ���� �� 3�,�

��� ��������� ����� ������� �� �� ����� � �����-����� ! ��� ���� �� ����

���� ��� ����� ������� �����-������ ���� ������ �� �+� ����� �� ���

&�� ������ �����-����� �� ����� �� &�� ��� ���� �� 3�,� �� ���� ��� � ξη.

2 ξ ! η ����� �� -��� �� � x ! y, ξ(x, y), η(x, y)% ��� �� ����� � �� ������������ &��

∂x=

∂ξ

(∂ξ

∂x

)+

∂η

(∂η

∂x

)GAH

∂y=

∂ξ

(∂ξ

∂y

)+

∂η

(∂η

∂y

)G:H

(�� ���� ��� � ��� ��������� GAH ! G:H ��� ����� �� � ��� ����� ���� G>H

! G@HN

3.2. MALLA COMPUTACIONAL PARA LA FORMA DEL CONDUCTO A9

∂ξ

∂x=

∂x

∂x

= 1

∂ξ

∂y=

∂x

∂y

= 0

∂η

∂y=

[y − ys(x)

yz(x) − ys(x)

]∂y

=1

yz(x) − ys(x)

∂η

∂x=

[y − ys(x)

yz(x) − ys(x)

]∂x

=[yz(x) − ys(x)] [−y′s(x)] − [y − ys(x)] [y′z(x) − y′s(x)]

[yz(x) − ys(x)]2

= −y′s(x)yz(x)+y′

s(x)ys(x)−[y′z(x)y−y′

z(x)ys(x)−y′s(x)y+y′

s(x)ys(x)]

[yz(x)−ys(x)]2

=−y′s(x)yz(x) − y′z(x)y + y′z(x)ys(x) + y′s(x)y

[yz(x) − ys(x)]2

=y [y′s(x) − y′z(x)] + y′z(x)ys(x) − y′s(x)yz(x)

[yz(x) − ys(x)]2

��� �� ����� �� G@H% y = η [yz(x) − ys(x)] + ys(x), ��������

∂η

∂x=

η [y′s(x) − y′z(x)] [yz(x) − ys(x)] − y′s(x) [yz(x) − ys(x)][yz(x) − ys(x)]2

=η [y′s(x) − y′z(x)] − y′s(x)

yz(x) − ys(x)

(� ���� ��∂η

∂x���� ��� �/������ ���� � ���N

A; CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

ys(x) =

0 � x ≤ 108

167.875(x − 10) � 10 < x ≤ 177.875

8 � 177.875 < x ≤ 299.125

− 889

(x − 299.125) + 8 � x > 299.125

yz(x) =

42 � x ≤ 10

− 8167.875

(x − 10) + 42 � 10 < x ≤ 177.875

34 � 177.875 < x ≤ 299.125889

(x − 299.125) + 34 � x > 299.125

��� ���� ys(x) ! yz(x), �������N

y′s(x) =

0 � x ≤ 108

167.875� 10 < x ≤ 177.875

0 � 177.875 < x ≤ 299.125

− 889

� x > 299.125

y′z(x) =

0 � x ≤ 10

− 8167.875

� 10 < x ≤ 177.875

0 � 177.875 < x ≤ 299.125889

� x > 299.125

��� �� �����%

∂η

∂x=

0.0 � x ≤ 10−9.530900968×10−2η−4.765450484×10−2

−42.9530901+9.530900968×10−2x� 10 < x ≤ 177.875

0.0 � 177.875 < x ≤ 299.125−−.1797752809η+8.988764045×10−2

27.7752809−0.1797752809x � x > 299.125

��������% �� � ����� � ����� ���� �����-����� &�� ��� ���� �� 3�,�

����������� ��� �� ����� �� G9H% ��

3.2. MALLA COMPUTACIONAL PARA LA FORMA DEL CONDUCTO A>

Continuidad :∂F1

∂ξ= −[(

∂η

∂x

)∂F1

∂η+

1yz(x) − ys(x)

∂G1

∂η

]G<H

Momento en x :∂F2

∂ξ= −[(

∂η

∂x

)∂F2

∂η+

1yz(x) − ys(x)

∂G2

∂η

]G=H

Momento en y :∂F3

∂ξ= −[(

∂η

∂x

)∂F3

∂η+

1yz(x) − ys(x)

∂G3

∂η

]GBH

Energıa :∂F4

∂ξ= −[(

∂η

∂x

)∂F4

∂η+

1yz(x) − ys(x)

∂G4

∂η

]G9?H

���� �� ���� � �� 3�,� �� ����� ���� � ��������� �� ��� ���� � ����

τ = t.

�� ���� ������ �����-������� �� ����� � xyt �� �� ����� � ����������� ξητ.

8��������� &�� τ = t% �� � � &�� �� � ���� �� ����� � ���� ��� �����

(� �� ��� � �� �����-����� �� �� ������� ��� ���� ��� � �� ����� ���#

������N

∂x=

∂ξ

(∂ξ

∂x

)+

∂η

(∂η

∂x

)+

∂τ

(∂τ

∂x

)∂

∂y=

∂ξ

(∂ξ

∂y

)+

∂η

(∂η

∂y

)+

∂τ

(∂τ

∂y

)∂

∂t=

∂ξ

(∂ξ

∂t

)+

∂η

(∂η

∂t

)+

∂τ

(∂τ

∂t

),

��� ��� ��� � ��� ���� ���

(∂τ

∂x

),

(∂ξ

∂y

),

(∂τ

∂y

),

(∂ξ

∂t

),

(∂η

∂t

)�� 0 G����H%

! ��� ��� � ��� ���� ���

(∂ξ

∂x

),

(∂τ

∂t

)�� 1 G���H� ��� �����% �� �� ��� � ��

A@ CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

�����-����� �� �� ������� ��� ���� ��� � �� ����� ��������� � ��� .����N

∂x=

∂ξ+

∂η

(∂η

∂x

)∂

∂y=

∂η

(∂η

∂y

)∂

∂t=

∂τ

��� �� ����� ��% �� ����� �� G;H �� �����-���� ��

∂U

∂τ+[∂F

∂ξ+

∂F

∂η

(∂η

∂x

)]+[∂G

∂η

(∂η

∂y

)]= 0,

� ���%∂U

∂τ= −[∂F

∂ξ+

∂F

∂η

(∂η

∂x

)]−[∂G

∂η

(∂η

∂y

)]G99H

(�� ���� ���

(∂η

∂y

)!

(∂η

∂x

)�� �/������ ���� �� ������� ����� �������N

(∂η

∂y

)=

1yz(x) − ys(x)(

∂η

∂x

)=

η [y′s(x) − y′z(x)] − y′s(x)yz(x) − ys(x)

.

(� ����� �� G99H ���������� �� � �� ���� � ����� � ����� ����% ��� ��

�� &���� ������� �� �� ��� � ��� ���N

Continuidad : ∂U1∂τ = −

[∂F1∂ξ + ∂F1

∂η

(∂η∂x

)]−[

∂G1∂η

(∂η∂y

)]G9;H

Momento en x : ∂U2∂τ = −

[∂F2∂ξ + ∂F2

∂η

(∂η∂x

)]−[

∂G2∂η

(∂η∂y

)]G9>H

Momento en y : ∂U3∂τ = −

[∂F3∂ξ + ∂F3

∂η

(∂η∂x

)]−[

∂G3∂η

(∂η∂y

)]G9@H

Energıa : ∂U4∂τ = −

[∂F4∂ξ + ∂F4

∂η

(∂η∂x

)]−[

∂G4∂η

(∂η∂y

)]G9AH

3.3. ALGORITMO MACCORMACK AA

���� �.<241)02 �/+240/+E

������ �.<241)02 �/+240/+E 3/4/ ./ D240/ *-)/+12(/41/

���� ������� ��� ����� ���� �� -����� �� .� ��� &�� ��� ����� �� (���

�����������% ��� ������� �� ���� �� '��������5 � ��� ����� ���� G<H% G=H% GBH

! G9?H�

���� ���������� 0��� � ��� ��� ����� ���� G<H% G=H% GBH ! G9?H �� ���� ��� �

-����� �� +�� � �������% ���������

(∂F1

∂ξ

)i,j

=(

∂η

∂x

)(F1)i,j − (F1)i,j+1

∆η+

1yz(x) − ys(x)

(G1)i,j − (G1)i,j+1

∆η(∂F2

∂ξ

)i,j

=(

∂η

∂x

)(F2)i,j − (F2)i,j+1

∆η+

1yz(x) − ys(x)

(G2)i,j − (G2)i,j+1

∆η(∂F3

∂ξ

)i,j

=(

∂η

∂x

)(F3)i,j − (F3)i,j+1

∆η+

1yz(x) − ys(x)

(G3)i,j − (G3)i,j+1

∆η(∂F4

∂ξ

)i,j

=(

∂η

∂x

)(F4)i,j − (F4)i,j+1

∆η+

1yz(x) − ys(x)

(G4)i,j − (G4)i,j+1

∆η

(�� ������� ��� �+�� � F % ��� ����� �� ���� � ���N

(F 1

)i+1,j

= (F1)i,j +(

∂F1

∂ξ

)i,j

∆ξ

(F 2

)i+1,j

= (F2)i,j +(

∂F2

∂ξ

)i,j

∆ξ

(F 3

)i+1,j

= (F3)i,j +(

∂F3

∂ξ

)i,j

∆ξ

(F 4

)i+1,j

= (F4)i,j +(

∂F4

∂ξ

)i,j

∆ξ

����� � ������� ��� �� ���� ���������% ����� ����� ��� .��� ��� �������

� F i+1,j� 0� ���� ����

(ρ)i+1,j =−B +

√B2 − 4AC

2A,

���

A: CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

A =

(F 3

)2i+1,j

2(F 1

)i+1,j

− (F 4

)i+1,j

B =γ

γ − 1(F 1

)i+1,j

(F 2

)i+1,j

C = − γ + 12(γ − 1)

(F 1

)3i+1,j

��� �� ����� ��� �+� � ρ% ������ ���� � � ��� ������� ��� �+�� � G% ���

������ ��� ������� �� ���� ������� ��� �� ���� ���������N

(G1

)i+1,j

= ρi+1,j

(F 3

)i+1,j(

F 1

)i+1,j(

G2

)i+1,j

=(F 3

)i+1,j

(G3

)i+1,j

= ρi+1,j

(F 3

F 2

)i+1,j

+(F 2

)i+1,j

−(F 1

)2i+1,j

ρi+1,j

(G4

)i+1,j

γ − 1

(F 2

)i+1,j

−(F 1

)2i+1,j

ρi+1,j

(F 3

F 1

)i+1,j

= +ρi+1,j

2

(F 3

F 1

)i+1,j

[(F 1

ρ

)2

i+1,j

+(

F 3

F 1

)2

i+1,j

]

���� ���������� 0� �� ���� ��������� ���� � ��� ��� ����� ���� G<H � G9?H% ��

���� ��� � -����� �� +�� � �����N

(∂F 1∂ξ

)i+1,j

=(

∂η∂x

) (F 1)i+1,j−1−(F 1)i+1,j

∆η + 1yz(x)−ys(x)

(G1)i+1,j−1−(G1)i+1,j

∆η(∂F 2∂ξ

)i+1,j

=(

∂η∂x

) (F 2)i+1,j−1−(F 2)i+1,j

∆η + 1yz(x)−ys(x)

(G2)i+1,j−1−(G2)i+1,j

∆η(∂F 3∂ξ

)i+1,j

=(

∂η∂x

) (F 3)i+1,j−1−(F 3)i+1,j

∆η + 1yz(x)−ys(x)

(G3)i+1,j−1−(G3)i+1,j

∆η(∂F 4∂ξ

)i+1,j

=(

∂η∂x

) (F 4)i+1,j−1−(F 4)i+1,j

∆η + 1yz(x)−ys(x)

(G4)i+1,j−1−(G4)i+1,j

∆η

3.3. ALGORITMO MACCORMACK A<

0��� � ��� ��� �� ���� ����� � ����

(∂F1

∂ξ

)i,j��

=12

[(∂F1

∂ξ

)i,j

+(

∂F 1

∂ξ

)i+1,j

](

∂F2

∂ξ

)i,j��

=12

[(∂F2

∂ξ

)i,j

+(

∂F 2

∂ξ

)i+1,j

](

∂F3

∂ξ

)i,j��

=12

[(∂F3

∂ξ

)i,j

+(

∂F 3

∂ξ

)i+1,j

](

∂F4

∂ξ

)i,j��

=12

[(∂F4

∂ξ

)i,j

+(

∂F 4

∂ξ

)i+1,j

]

P .�������� ��� ��� ����� � 3�,� F, �� �� ����� ��� �� i + 1, �� ��������

����

(F1)i+1,j = (F1)i,j +(

∂F1

∂ξ

)i,j��

∆ξ

(F2)i+1,j = (F2)i,j +(

∂F2

∂ξ

)i,j��

∆ξ

(F2)i+1,j = (F3)i,j +(

∂F3

∂ξ

)i,j��

∆ξ

(F2)i+1,j = (F4)i,j +(

∂F4

∂ξ

)i,j��

∆ξ

���� ��� ���� �� � ��� ��� � ���� � �� -������� � ����� � ���� �� ��#

���� �� � ������ � ��� ��� ���� �� �� ����� �� ����� ��% ���� �� � ��� �����

��� ��� ���� ������ ��� �� �������� � �� ���������� ���� ���� �� ������� ��#

��� ��� (� ���������� ���� ���� �� �� ����� �������� � ��� �� � 3� ��

�������� ����% ! ���� �� �������� ���� �� -������� ��� ���� ��� � �� � ���� #

� ��� .� �� ����N

(SFk)i,j =Cy |pi,j+1 − 2pi,j + pi,j−1|

pi,j+1 + pi,j + pi,j−1× [(Fk)i,j+1 − 2(Fk)i,j + (Fk)i,j−1]

k = 1, 2, 3, 4.

(� � ���� � ��� .� �� �������� �� �� ���� ���������� �� ����� � ��� ��#

� ����� � 3�,� ��� �+�� F 1, F 2, F 3 ! F 4 :

A= CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

(F k

)i+1,j

= (Fk)i,j +(

∂Fk

∂ξ

)i,j

∆ξ + (SFk)i,j , k = 1, 2, 3, 4.

2 � ��������% �� �� ���� ���������% �� � ���� � ��� .� �� ���� �� �� �)��

� ��� ������� .����� � ��� ��� ����� � 3�,� F 1, F 2, F 3 ! F 4 :

(SF k)i+1,j =Cy∣∣pi+1,j+1 − 2pi+1,j + pi+1,j−1

∣∣pi+1,j+1 + pi+1,j + pi+1,j−1

×× [(F k)i+1,j+1 − 2(F k)i+1,j + (F k)i+1,j−1

], k = 1, 2, 3, 4.

(Fk)i+1,j = (Fk)i,j +(

∂Fk

∂ξ

)��

∆ξ + (SF k)i+1,j , k = 1, 2, 3, 4.

������ �.<241)02 �/+240/+E 3/4/ ./ D240/ (2 *-)/+12(/41/

���� ��� ����� ���� G9;H � G9AH% &�� ������ �� 3�,� ���������� �

�����������% �� ����� ��� '��������5 ������ ���� � ����

��� ������ ��� �% �� ���� ��� ��� �������� �� ����� �� i ������ ����� �� �,�

x G��������H% ! �� ����� �� j ����� �� �,� y G���������H�

���� ���������� 0��� � ��� ��� ����� ���� G9;H � G9AH �� ���� ��� � -�#

���� �� +�� � �������N

(∂U1

∂τ

i,j

=(F1)

τi,j − (F1)

τi+1,j

∆ξ+(

∂η

∂x

) (F1)τi,j − (F1)

τi,j+1

∆η

+(

∂η

∂y

) (G1)τi,j − (G1)

τi,j+1

∆η

(∂U2

∂τ

i,j

=(F2)

τi,j − (F2)

τi+1,j

∆ξ+(

∂η

∂x

) (F2)τi,j − (F2)

τi,j+1

∆η

+(

∂η

∂y

) (G2)τi,j − (G2)

τi,j+1

∆η

3.3. ALGORITMO MACCORMACK AB

(∂U3

∂τ

i,j

=(F3)

τi,j − (F3)

τi+1,j

∆ξ+(

∂η

∂x

) (F3)τi,j − (F3)

τi,j+1

∆η

+(

∂η

∂y

) (G3)τi,j − (G3)

τi,j+1

∆η

(∂U4

∂τ

i,j

=(F4)

τi,j − (F4)

τi+1,j

∆ξ+(

∂η

∂x

) (F4)τi,j − (F4)

τi,j+1

∆η

+(

∂η

∂y

) (G4)τi,j − (G4)

τi,j+1

∆η

(�� ������� ��� �+�� � ��� ���� ��� U, ��� ����� �� ���� � ���N

(U1

)τ+∆τ

i,j= (U1)

τi,j +(

∂U1

∂τ

i,j

∆τ

(U2

)τ+∆τ

i,j= (U2)

τi,j +(

∂U2

∂τ

i,j

∆τ

(U3

)τ+∆τ

i,j= (U3)

τi,j +(

∂U3

∂τ

i,j

∆τ

(U4

)τ+∆τ

i,j= (U4)

τi,j +(

∂U4

∂τ

i,j

∆τ

����� � ������� ��� �� ���� ���������% �� ������ ���� ��� .��� �� ���#

� ��% � ���� � � ��� ��� ����� � 3�,� U, ���� � ���N

(p)τ+∆τi,j = (γ − 1)

(U4)τ+∆τ

i,j − 1

2(U1

)τ+∆τ

i,j

[(U

22

)τ+∆τ

i,j+(U

23

)τ+∆τ

i,j

]

��� �� ����� ��� �+� � p, ������ ��������� ��� ������� ��� �+�� � F !

� G% ��� ������ ��� ������� �� �� �� ���� ���������N

(F 1

)τ+∆τ

i,j=(U2

)τ+∆τ

i,j

:? CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

(F 2

)τ+∆τ

i,j=

(U

22

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

+ (p)τ+∆τi,j

(F 3

)τ+∆τ

i,j=

(U2

)τ+∆τ

i,j

(U3

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

(F 4

)τ+∆τ

i,j=

(U2

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

[(U4

)τ+∆τ

i,j+ (p)τ+∆τ

i,j

]

(G1

)τ+∆τ

i,j=(U3

)τ+∆τ

i,j

(G2

)τ+∆τ

i,j=

(U2

)τ+∆τ

i,j

(U3

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

(G3

)τ+∆τ

i,j=

(U

23

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

+ (p)τ+∆τi,j

(G4

)τ+∆τ

i,j=

(U3

)τ+∆τ

i,j(U1

)τ+∆τ

i,j

[(U4

)τ+∆τ

i,j+ (p)τ+∆τ

i,j

]

���� ���������� 0��� � ��� ��� ����� ���� G9;H � G9AH �� ���� ��� � #

-����� �� +�� � �����% �� � ���� ��� ��� ����� ��� �+�� F ! G �� �� � ����

t + ∆tN

(∂U1

∂τ

)τ+∆τ

i,j

=

(F1

)τ+∆τ

i−1,j− (F1

)τ+∆τ

i,j

∆ξ+(

∂η

∂x

) (F1

)τ+∆τ

i,j−1− (F1

)τ+∆τ

i,j

∆η

+(

∂η

∂y

) (G1

)τ+∆τ

i,j−1− (G1

)τ+∆τ

i,j

∆η

3.3. ALGORITMO MACCORMACK :9

(∂U2

∂τ

)τ+∆τ

i,j

=

(F2

)τ+∆τ

i−1,j− (F2

)τ+∆τ

i,j

∆ξ+(

∂η

∂x

) (F2

)τ+∆τ

i,j−1− (F2

)τ+∆τ

i,j

∆η

+(

∂η

∂y

) (G2

)τ+∆τ

i,j−1− (G2

)τ+∆τ

i,j

∆η

(∂U3

∂τ

)τ+∆τ

i,j

=

(F3

)τ+∆τ

i−1,j− (F3

)τ+∆τ

i,j

∆ξ+(

∂η

∂x

) (F3

)τ+∆τ

i,j−1− (F3

)τ+∆τ

i,j

∆η

+(

∂η

∂y

) (G3

)τ+∆τ

i,j−1− (G3

)τ+∆τ

i,j

∆η

(∂U4

∂τ

)τ+∆τ

i,j

=

(F4

)τ+∆τ

i−1,j− (F4

)τ+∆τ

i,j

∆ξ+(

∂η

∂x

) (F4

)τ+∆τ

i,j−1− (F4

)τ+∆τ

i,j

∆η

+(

∂η

∂y

) (G4

)τ+∆τ

i,j−1− (G4

)τ+∆τ

i,j

∆η

0��� � ��� ��� �� ���� ���� ���� ����� � ���� � ���N

(∂U1

∂τ

)i,j��

=12

[(∂U1

∂τ

i,j

+(

∂U1

∂τ

)τ+∆τ

i,j

]

(∂U2

∂τ

)i,j��

=12

[(∂U2

∂τ

i,j

+(

∂U2

∂τ

)τ+∆τ

i,j

]

(∂U3

∂τ

)i,j��

=12

[(∂U3

∂τ

i,j

+(

∂U3

∂τ

)τ+∆τ

i,j

]

(∂U4

∂τ

)i,j��

=12

[(∂U4

∂τ

i,j

+(

∂U4

∂τ

)τ+∆τ

i,j

]

:; CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

�������� ��� ��� ����� � 3�,� U, �� �� � ���� τ + ∆τ, �� �������� ����N

(U1)τ+∆τi,j = (U1)

τi,j +(

∂U1

∂τ

)i,j��

∆τ

(U2)τ+∆τi,j = (U2)

τi,j +(

∂U2

∂τ

)i,j��

∆τ

(U3)τ+∆τi,j = (U3)

τi,j +(

∂U3

∂τ

)i,j��

∆τ

(U4)τ+∆τi,j = (U4)

τi,j +(

∂U4

∂τ

)i,j��

∆τ

(� � ���� � ��� .� �� S �� �������� �� �� ���� ��������� ! ���������% ���#

���� �������% ���N

Sτi,j =

Cx

∣∣∣pτi+1,j − 2pτ

i,j + pti−1,j

∣∣∣pτ

i+1,j + 2pτi,j + pτ

i−1,j

(U τ

i+1,j − 2U τi,j + U τ

i−1,j

)

+Cy

∣∣∣pτi,j+1 − 2pτ

i,j + pτi,j−1

∣∣∣pτ

i,,j+1 + 2pτi,j + pτ

i,j−1

(U τ

i,j+1 − 2U τi,j + U τ

i,j−1

)

Sτ+∆τi,j =

Cx

∣∣∣pτ+∆τi+1,j − 2pτ+∆τ

i,j + pτ+∆τi−1,j

∣∣∣pτ+∆τ

i+1,j + 2pτ+∆τi,j + pτ+∆τ

i−1,j

(U

τ+∆τi+1,j − 2U

τ+∆τi,j + U

τ+∆τi−1,j

)

+Cy

∣∣∣pτ+∆τi,j+1 − 2pτ+∆τ

i,j + pτ+∆τi,j−1

∣∣∣pτ+∆τ

i,j+1 + 2pτ+∆τi,j + pτ+∆τ

i,j−1

(U τ+∆τ

i,j+1 − 2U τ+∆τi,j + U

τ+∆τi,j−1

)

2� ��������� ��� ������� � � ���� � ��� .� �� �� �� ���� ���������% ����

(U)τ+∆τ

i,j= (U)τ

i,j +(

∂U1

∂τ

i,j

∆τ + Sτi,j ;

! �� �� ���� ��������� ����

(U)τ+∆τi,j = (U)τ

i,j +(

∂U1

∂τ

)i,j��

∆τ + Sτ+∆τi,j .

3.4. PARÁMETROS INICIALES Y CONDICIONES A LA FRONTERA :>

���� �/4:0*)42- 1(1+1/.*- B +2(,1+12(*- / ./ D42()*4/

������ �/4/ ./ D240/ *-)/+12(/41/

(�� ��� � ���� � � ���� ���� �� 3�,� ����� ���� � ��� ��� � �� �����N

M = .2000+ 01u = .6780+ 03�1�v = .0000+ 03�1�ρ = .1230+ 015�1�3

p = .1010+ 06�1�2

T = .28610+ 03I

21M =

31� 23.1=

2

5

1p 1001.1 �=

T 1.2861 =

m

K

Kg

línea inicial de datos

mN

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

Plano físico

Plano computacional

xx ��00x

0� �� ��0

Figura 3.4-F20. Condiciones iniciales

(� ����� � � �� ����� �� ����� �� ��� ���� ����� �� x% �� ������� �� x0 ��

����� � � �� � ���� ����� y G��� �� .���� G>�@# 20HH% �� �� �% ������� �� �����

� �� �� ��� � "% ��� �������� � y% � �� ����� � �+� ������ 0��� ���� ��

�������� �� �� ��� � F % ��� �������� � x% ! ��� �� ����� �� ���� ������� � ��

��� � �� x0 + ∆x� ���� �� ���� ��� �� �� ���� �� G>�;H ��� -����� �� .� ���

�� �� ����� ��� ��� ����������% �� ��&� ��� �� ����� ����������� ��� ��

&�� �� ����� �� ������ ����� ξ�

�$ �� � �� �������� � � �������� (�� ����� ���� &�� ��� ����� ��

3�,� ����� ���� � ���� ���� ���� ��� + ������ ���% ! ��� ����� �� ������� �

��� ��� �� �� ��� � � ����� � �% ������ � ( G�������# � �� �+�#(�4!H% ����

:@ CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

���� � �� � ����� ����% �� ���� ���� �� �������� �� ��/ �� ��������� &�� ��

��� ����� �� ��� ����� �� ���� ��������� �� ����� � � �� � ������

2��D� �� �� ��� � � (% �� ����� � ∆ξ &�� �� ��� ����� �� ��� ����� �� ��

������� ����

∆ξ = min {min ∆ξ1(i), min ∆ξ2(i)} ,

���

∆ξ1(i) = C∆y

|tan (θi,j + µi,j)| , ��� j = 1, ..., (n − 1)

∆ξ1(i) = C∆y

|tan (θi,j + µi,j)| , ��� j = 2, ..., n,

! ���

θi,j = arctan(

vi,j

ui,j

)!

µi,j = arc sen(

1Mi,j

).

�����% ���D� �� �� ��� � � (% C ≤ 1 ! ���� �� �������� �������� ���� ���C = 0.5. ���� ������� &�� i ������ ����� �� �,� x ! j ����� �� �,� y�

��������� � � ������ ���� � (��� ������������ (�� ��� � ����

-�� ��� ����� ��� ���� �� 3�,� �� � �����% �� &�� �� ���!����� � ��� ��� ���#

����� � �� -�������� 0��� �� �� D� �� ��� � ��% ���� ��� ����� ���� ���� ��

3�,� ���� ��� ����� �� ���� ����� � �� ����� ��� 0� ����� � ��� ���� ����

�� 3�,� �� �� -������� +�� � � ����� � ����� ��� �� �� � �� 0� �� ��������

����% ����������� �� ������ ���� � ��� ��� � ���� � �� -������� ����� ��

��� ������% '� �N

9� 0� �� .���� G>�@# 21H% ���� ������ �� ����� 9 � ���� �� �� -������� �#

-�� ��� 0� ���� ����� ������ �������� �� ������ ����� �% ������ ���

3.4. PARÁMETROS INICIALES Y CONDICIONES A LA FRONTERA :A

GV1H���, �� � ���� ���������� ����� � ���� ���� �� �� ����� ��� '�����#

���5� 0� �� D� �� ��� ��% ���&�� �� ������� ������ �� �� ����� ���

���,� � �� -������� �-�� ��% ! ��� �� ����� �� +�! ������ � -����� ���

-����� �� +�� � ����� �� �� ���� ���������� 0��� ������ � &�� �� �� � #

��� ���������� ����� ������� �� ��� �� ������� �� ��������� ! ���������%

�� &�� �������� �� ���� � ���� � �� � ������ ���� �� ����� ���

'��������5% �� �� -������� �-�� ���

1

cal1)(V

act1)(V o353.5�

2

cal2 )(V

act2 )(V

1

2

fronterainferior

y

x

Figura 3.4-F21. Condiciones de Abbett

;� (� ���� �� �� ������ ����� � GV1H���, �� ���� ������� ������ ��������

� �� -������� �-�� ��% �� &�� ������ ��� ����� � �� ����� ��� ���� ��

������� �� �� .���� G>�@# 21H% GV1H��� � ���% ��� �������� � �� -�������% ��

������

φ1 = tan−1

(v1

u1

),

��� u1 ! v1 ��� ��� ���� ���� � ��� ����������� �� �� �,� x ! ��

�� �,� y, ������� �������� �� � ���% �� �D���� � '��+ �������� �� ��

����� 9 ����

(M1)��� =

√(u1)2��� + (v1)2���

(a1)���,

:: CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

���

a��� =√

γp���ρ���

.

>� ���� ��� &�� �� ������ GV1H��� �� ����� � ������ &�� &��� ��������

� �� -�������% �� �� �% ������� GV1H��� � ������ � �� ��� � �/���� ��

����� �������% � ��� �� ������ � ��� �� �� �� φ1. 0��� ������ ��

����� ������ ����� � GV1H���, �� ���� �� �������� � �� -�������� 0� �D����

� '��+ ���� �� ��� (V1)��� �� (M1)���, ! �� ��� ��� ���� � ���� �� �������������� f��� ��� �� ����� �� �� ��� �� ����� ��

f��� = f��� + φ1,

��� f��� �� ��� ��� � �� ����� �� � ������#'�!�� G9:H% �� � ����

(M1)���. ������ ������� �� ��������� �� ����� � (M1)��� �� � ���� �� ������ f��� �� � ����� �&� ��� � �� ����� �� � ������#'�!��%

f��� =√

γ+1γ−1 tan−1

√γ−1γ+1 ((M1)2��� − 1) − tan−1

√(M1)2��� − 1 G9:H

���� �� ������� �� �� ��� ��� ��������� �� ����� � (M1)��� �/���� ��#�����% ��� &�� �� � ������� �� ����� � ��4��� ���� ����/ ��� �� �����

� (M1)���.

@� 2��� p���, T��� ! � ��� ������� � �����% ����������� ! �������� ���#

���� �������% ��������� �� �� �� �� 9% �� � ���� -����� �� +�� � ��

���� ���� 0���� ������� ���� ��� ���� ��� ���� ����������� � ���

������ ��� � ����% ������ � �������� �� ������ ����� � �������� � ��

-�������� 0���� ����� �������% ������� ��� p���, T��� ! �% ��� ����� #

3.4. PARÁMETROS INICIALES Y CONDICIONES A LA FRONTERA :<

�� ����� M��� ! M��� � �� � �� ���� ������N

p��� = p���

1 +[(γ − 1)

2

]M2

���

1 +[(γ − 1)

2

]M2

���

γ

γ − 1

T��� = T���

1 +[(γ − 1)

2

]M2

���

1 +[(γ − 1)

2

]M2

���

� =p���

RT���

(�� ������� � p���, T��� ! �% ����� ����% ��� ����������� ���� ���

������� .����� � p, T ! ρ � �� -�������% �� �� ����� 9�

A� ���� �� ���� �� � �� -������� �-�� �� ������ � �� ��&� �� � �/���� ��%

�� ���� �� ���� �� �� �� � ���� ���� �� ������� �� �� .���� G>�@# 21H%

GV2H��� �� ����� �� ������ φ2 ���� ��� �������� � �� -�������� ��� f��� ��

�������� ���� � ���N

f��� = f��� + φ2

$��� ��� �������� �� �� ����� ; � �� .���� G>�@# 21H% �� +���� �/����#

����� ���� �� �� ����� 9% ��� �� �/���� �� � φ2 &�� �� ������� � ��

� �� ���� ������N

φ2 = θ − ψ,

���

ψ = tan−1 |v2|u2

.

:= CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

���� �,���� .��� �� ����,� � ��� ��� � ���� � �� -�������% ����������

&�� ��� ������� � ��� ��� ����� ��������� �� �� ����� ; � �� -������� �-�� ��%

���

M��� = 2.22

p��� = 0.705

T��� = 255 K

� = 0.963 I�1�3

v��� = −74.6 �1�

u��� = 707 �1�,

�������� �� ���� �� �� ������ ����� � (V1)��� ���� �� ��� �� ������

ψ = tan−1 |−74.6|707

= (6.02)� .

2 �� ��� �� �� � �� -������� �-�� �� ��� �������� �� �,� x, ������ � ��

��&� �� � �/���� ��% �� θ = (5.352)0 , ��������

φ2 = θ − ψ

= (5.352)� − (6.02)�

= (−0.668)� .

0� ���������� �% �� 3�,� �������� �� �������� �� �� -������� ��� ��� ��#

��� (0.668)� �� ���� �� ������� � � ��� ����� ���� �� ����,% ���� ��� ��������� �� -�������� 0��� ����� �� ��� �� ��� ��� � ������� �� �����% ��� �� &��

��� ������� � '��+% ���� ��% ����������� ! ��� �% ���� ��� ������ ����

���� � ����

��� �� ����� �� f��� = f��� + φ2 ������� &�� �

M��� = 2.22,

��������

f��� = (32.24)� ,

� ��� �� � ��� &��

3.4. PARÁMETROS INICIALES Y CONDICIONES A LA FRONTERA :B

f��� = (32.24)� − (0.668)�

= (31.57)� .

��� �� �����

M��� = 2.19.

0� �� -�������% ��� ������� ������ ���� � �� ���� ��% ����������� ! ��� #

�% ��� ����� �� ���� � ���N

p��� = p���

1 +

[γ−1

2

]M2

���

1 +[

γ−12

]M2

���

γγ−1

=(0.705 × 105

) [1 + 0.2 (2.22)2

1 + 0.2 (2.19)2

] 1.41.4−1

= 73889.09 �1�2

T��� = T���

1 +

[γ−1

2

]M2

���

1 +[

γ−12

]M2

���

= 255

[1 +[

1.4−12

](2.22)2

1 +[

1.4−12

](2.19)2

]

= 258.44 I

� =75076.65

(287.11) (258.44)= 1.01 I�1�3

�������� ����������� �� ��&��)� ���� � �� �� ����� �� ��,���� ��

���������� � ����� � �� x, ���� �� �������% �� � ���� -����� �� +�� �

�� ���� ���� ��� �� &��

u��� = u���

= 707 �1�.

<? CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

(� ���������� � ����� � �� y, �� ��������� ��� &�� v��� �� ��������

����

v��� = −u��� (tan θ)

= −707 (tan (5.352)�)

= −66.23 �1�.

������ �/4/ ./ D240/ (2 *-)/+12(/41/

���� �� (��� ���������� � �����������% �� ��������� ∆η ����� η ��

���������N ∆η = 0.025.

(�� ���������� ∆ξ ����� ξ, ��� ��� ���������� &�� �� ��������� ��� ��

�� ��� � � ( ���� �� ���� �� 3�,� ����� ���� ��

0� ��������� ∆t � t �� ��� ��� ���� � ���N

∆t = C ·(|ui,j |∆x

+|vi,j |∆y

+ ai,j

√1

(∆x)2+

1(∆y)2

)−1

,

��� C = 0.5 ! ai,j =√

γ · pi,j

ρi,j�

��� ����� ∆τ �� ������� ����

∆τi,j = C ·(|ui,j |∆ξ

+|vi,j |∆η

+ ai,j

√1

(∆ξi)2 +

1(∆η)2

)−1

.

0� �� �/���� �� ����� �� �� �/����D�� (i = 1) , (i = N) , (j = 1) ! (j = M),���� ���� �� ����� �� ������ ��� ������ ���� ����� �� ���� ������ �������#

��� (M − 2) (N − 2) ∆τ ′� �� �� � ���� t, ! � ����� �� �� �� �� ����� ��� ��% ��

�� �

∆τ = mın(∆τ t2,2, ∆τ t

2,3, ..., ∆τ ti,j , ... , ∆τ t

N−1,M−1).

3.4. PARÁMETROS INICIALES Y CONDICIONES A LA FRONTERA <9

��������� ����� �� � � � ������ ���� � (��� � ������������

(� ����� �� ������ ����� �� � ����% � ���� � � �� ���,���� � ��� � ����

� � ���� &�� ����� .��� ��� ���� ���� �� 3�,� �� ��� ����� (i, j), �� ��

� ���� τ = 0. (�� ��� � ���� � � ���� &�� ��������� ��� ��� &�� �������� �

�� ����� �� �� 3�,� ����� ���� ��

(�� ��� � ���� � �� -������� ��� ��� � �� ����� G��� �� .���� G>�@# 22HHN

9� (� ��� � ρ% �� ����������� T ! �� ���� �� p, ���������� ����������

�� i = 1% ��� �� �����% �� ������ � ���� �� � U1, �� i = 1, ���� ��

��������� ����������

;� (�� �������� � ������� U2 ! U3 �� i = 1, �� �������� �� � ���� �/�����#

��� �� � ����N

U2(i=1,j) = 2U2(i=2,j) − U2(i=3,j)

U3(i=1,j) = 2U3(i=2,j) − U3(i=3,j)

>� 0� ������ � ������� U4 �� i = 1, �� ������� �� � ���� ��� ������� � u ! v

����� �� � U2 ! U3�

@� (�� ��� � ���� �� 3�,� � �� ��� �% i = n, �� �������� �� � ���� �/���#

����� �� � ����N

U1(i=n,j) = 2U1(i=n−1,j) − U1(i=n−2,j)

U2(i=n,j) = 2U2(i=n−1,j) − U2(i=n−2,j)

U3(i=n,j) = 2U3(i=n−1,j) − U3(i=n−2,j)

U4(i=n,j) = 2U4(i=n−1,j) − U4(i=n−2,j)

<; CAPÍTULO 3. EL MODELO MATEMÁTICO DE LA APLICACIÓN

45141 puntos discretos

DOMINIO COMPUTACIONAL

x

y

JMAX)(IMIN,

JMIN)(IMIN,

JMAX)(IMAX,

JMIN)(IMAX,

1�i

1�iT

1�ip

Tvu y,,,y 11 �� ii vu

Frontera inferior (fija)

Frontera superior (fija)

Flujo

extrapolados del interior

extrapolados del interior

(fijos)

��

Figura 3.4-F22. Condiciones a la frontera para el flujo no estacionario

/3>)6.2 �

����� � ������������

0� ��)� � ����� ���� ��������� ! ��� ���������� � �� ���������� �� ��

���������% �� �� ��� ���&� ��� ���� ���� � �� ����� � ����� 2� ��� �����

�� ������ &�� �� �������� �� � �� �������� � ��� �� � � ���� �� �� ����� � #

�% �/��� ��� � ! ����� � ���� � �� ��)���� ���&�� �/ ���� �����������

&�� ���� ��� � � � ��� �� ����� � ��� ���� � ���� ����% ��� �� � � ���

��� � � ����� ����% ���� �� ���� ! ������% ��� ��� ������ �� ����� �� � ���� �

���� ��� �� ��� ��)�% ����� �� � ��� �� ���� �% �� �/���� ��% �� -���� �

��� ����� � �����% ��,����% ��� �����% ����% &�� �������� �� ���������

�������� ����� ��� � �� ��)� �� ��,�� &�� ���� �� ���� ���� �� ���

����� �� ���,�� ��� 2 � ������� ���� ���� ������ &�� �� ���� ��)� ��

�&��� &�� �� �,���� � ��� ��&��� � ����� �� � �����% �� �����/�� �� �� &�� ��

������� �� � ���% �� +��4��� &�� �� ������% � �� ��� � � � � �� ���� � ��#

� ��� ��� �� �����% ��)�� �� �� �����,� ���������� &�� �� �� �� � �� ���� ����

0� ���� �������� �� ��)� �� -���� �������� �� &�� �� ��� ��)�� ��

����� ��� '��������5% ���� �������� ��� ����� ���� G9H ! G;H �� �������� >%

���� ����� ��� ���������� � � ���� ! � �� -�������� 2� ����� ��� ��� ��� ����

-����� � ��)� �� ���������

<>

<@ CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

���� 1-*A2 ,* 342<4/0/- 3/4/.*.2-

���� �� ���� ��!���� � ��� ��������� &�� �� ������ ��� ��������� ��

��������% �/ ���� ����� ���������� ���� �����������% ! �� ��� �� �������� ���

��� ��,��% �� �����% &�� �� ����������� ������� ��� (� ���������� �� #

��)� � �� �������� �������� ��� �������� ���,���� � ��� �������� � ��

��&� ������� � �� ��&� ��% ! �D� ����� ���� �� �� �� ��� ��� ���% ��� ��

���� ��� �� � ��&� ��������% ������� ��,���� &�� ����� ���� ����� ����

���������% ��� ���� ��� �� ������� � ��)� ���� �� ����� �� ���� ���

��-�4���% �� �� �� �� � � �� ��� ���,�� ��� ��� � �� ��&� ��������

(� ���������� � ��)� ������ ���' ��� �� �� ���� ����� � ��� ������

K9L% ������� &�� �� ��������� �� � �� �������� �������� ��� ����������

��� � �� ����� -����N ���� � ���� ����% ����� ��� ��% ��������� �� ! '�����

(�� �� �� ����� �� ��-���� ����� �� ������� ��� ! �� ������� � �% ! ���

���������� � �� �� �D�&��� � ����� ���� ���� ���� � ����� ���� ���� 0�

��� �� D�� ���% �� ����� �� �� ������� ����� �� ����� � ! ��� ����� ����

����� ����� ��� �� ��� � �����

0� �������� � ��� ��� �� ���������� ���'% ���� ��� �� �������� &��

���� ! �����!� ������ ��� �������% �� � ���� ���� ��� � ������� � �����

���� ��������� �� ����� � ��� ������ � ��� �����������% � ���� ��� ��

�������� &�� ���� �/��������� ��� ����� ��� ���������� 0� ������� �����

�� ����� ���� ��� �������� ��� �� �� ����� � ��������� ���

(� .���� G@�9# 23H ������� ��� ������ � �� ���������� ���'% �� ���� ����

����� � �� ���������� �� ����� � ��,���� �� �� ������� � ��)��

4.1. DISEÑO DE PROGRAMAS PARALELOS <A

Problema particionamiento

comunicación

aglomeración

mapeo

Figura 4.1-F23. Metodología PCAM

��������������� (� ����� � ���� � ���� ���� � �� ��)� �������� �#

�� ��������� �� �/����� ���� ��� ��� � � ��� �� ��� &�� �� ���� ���� �

�� �������� &�� ���� ���������� � ������ � ��� �,���� �� ��������� ��� ���

��� �� ��� ���������� � ���������� �� �������� �.� ��� ������ �� ��#

��� ����)� ��� ���% �� �� �% � �������� � .��% !� &�� � ���� ������ ��

��� ��� �� 3�/ � � � ���� ��������� ����� ��� ���� � ���� � ��� ������ ��#

�����% -������� ���� ��� ��&��� � ����� � ����� ��� ��% �� ��&� ������� �

�� ��&� ��% �� ���������� � �������� � ��-�4���% ����% ��� �.� ��� ��

�������� � .���% �� �� �% �� -���� ��� �� � ���� � ���� �� ��������M � �

������� ���� ����� �� ��� ���� ��� � � ���� ���� ����� -��������

<: CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

J� ���� ���� � ���� ���� ���� ��� �� ������� � ��-���� �� ��������%

��� ���� �� � �� ���������� ! �� ���� � ��� ������ ���� ��)�� �� ���� #

� ���� ���� �� ���� �� ��-��� � ��� ���� ���� ��� � �� ��������% �����

��������� �� ���� ���% �� ���� ��� ������������� �� ������% ! �� ��#

������ �� �� �� ������������� ����� � 0� �� �������� � �� �� �� � �%

�� ���� �� ����� ���������� ��� ���� ���� ��� �� ��������% � �� ��� ���

�� � �� �� ������ � ����/ �������� �� � ��� ����)�M �� ���� � �� ����

�� � � �� �������� ��% ���� ��� ��� ����� ��� ��� ���� �� ��� &�� ���#

��� 0� �������% �� �������� �������� ��� ���� � ��)���� ��� �� ����� �

� ��� � ���� ���� ��� ��� �� �����% �� �������� � �� -��� ���� �� ��� -����

-������ ! ������������ � � ������ ��� ��������� ���������� 0� ���� ����#

/ ��� ��% �� ��-�&�� �� �� ��� �� � � �� �������� �� �� ������ �,�����%

! ������ �� ������ � �/�� ��� ��� ��&��� � ����� � ���� � ��� ������

"����������� �� �������� � �� -��� ���� �� ����� �� �� ��������� ���

��� ���� � ���� ��� ���������� ��! ��� ��% ���� ����� ���� � �D�&���

�� � ���� ��������

(� .���� G@�9# 24H ������� ���� ��� ���� ���� � ���� ����� ����� ��� �����

�� ���� ����� (� �������� � �� -��� ���� � ���% �� � ���� ���� ����

��� ��� ����M �� ��� ���� ��� ���� ���� ��� ��� ��� ���� ����� ����� ���#

������� (� �������� � �� -��� ���� �� ���� ���� �-���� �� ��!�� 3�/ � � #

�% ! ��� �� ����� ��� ��� ������ �� ������ ��������� �� ��)��

unidimensional tridimensionalbidimensional

Figura 4.1-F24. Posibles particionamientos sobre una malla 3D

����������� (�� ������ �������� �� �� ���� � �� �� �������� �,������

�������������% ���� ���������� � �� � ����� ���� ������ �� ��,�� �� ���D�%

4.1. DISEÑO DE PROGRAMAS PARALELOS <<

��� �� &�� �� �������� �� � ��� ����� ��� ��% ��&� ��� ���� ���� ��� ���

����� ������� (� ����� ��� �� ��&��� � ���� ���� ��� �� �,���� �� � ���

������ ��� ��� ����� ���� (�� ����������� ! ����� ���� � ����� ��� ��

��� �.� ��� 0� 3�,� � �� �-����� �� ��� ��� ����� .��� �� �� -��� �

����� ��� ���

������ ���� .��� ��� � ��� � ����� ��� ��% ����N �����1������% ������#

�����1�� �����������% ����� ��1 ��� ��% ��������1����������

�H 0� ��� ����� ��� �� �����% ��� ����� �� ����� �� ��� �� ���,����

��&��)� � ������% ��� ������ �� ���� ���� ��� ���� 0� ���������% ���

����� ��� �� ������ ��&� ��� &�� ��� ����� �� ����� &�� ��� ��� ��

������ &�� �� ���� ���� �� ���������

�H 0� ��� ����� ��� �� �����������% ��� ����� ! ��� ��� ��� ���-�����

��� ���������� �������% ���� ��� �,����� �� ����� � ��� ������ (� ����#

� ��� �� �� ����������� �� ���-����� ��� ����&� �� � �� � �����������

�H 0� ��� ����� ��� �� ����� ��% �� ��� � � ��� �������� � ����#

� ��� �� �� ���� � �� �� � ����� (� ��� � � ��� �������� �� ���

����� ��� �� � ���������� ��� ��% �� ����� ��� �� � ���� � �,�#

��� ���

H 0� ��� ����� ��� �� ��������% �� �� ��� ! �� �������� ���� ��� �� ����#

� ��� ��% �� �� �% �������� �� �� �����-����� � � ����� 0� ���������%

�� ��� ����� ��� �� ���������% �� �������� ��� ������� ���� � � ��

�������� �� �� �� ����

)� ��������� 0� ��� �� ����� �� ������ �� ������� � ��)�% �� � �

�� �������� �� &�� �� ����� � ���� �� �� ���,���� � ������ ! �� ������� ��

����� ��� �� ���� �������� �� ��� ���� ��&��� �� ��� ��� ������� 0� ����� �#

�� ���������� ������ �� ��������� �� �� ���� � � &�� �� ���� ����� �� ���

���� �.� ��� � � �,���� �� �� ��� ���������� �������� �� ���� ������ �� +�#

�+� ���� ��� ��.� ���� � ����� ��� ������ &�� �� �D���� � �����������

���� ���� � � �� ���������� �� ���� ��)�� ���� �� �,���� �� �.� ����

� ������ � �������� � .���

<= CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

0� �� ����� � ��������� ��% �� ��� ���� � ����� � �� ��������� � ��

��������� 2� ��� ��� ��� �� � ���� +��+�� �� ��� ������ � ���� � �� ! ����#

� ��� �� ���� ������� �� ����� ��� &�� �� �,����� �.� ��������� �� �� � ��

� ���������� ��������� 0� �D���� � ������ &�� �� ������� �� �� �����

� ��������� ��% ������������ �� ������ � �� +���� �� �� � ��� �� �D��#

�� � ����������� -�� ���% ���� ��,���� �� ��� � ���� ! ���� � ������ �

����� ��� �� ����� ������

!����� 0� �� ����� � ����� �� ����� .�� ��� �� �� � �,������ ���

�����% ���� �� &� ��� �� � &�� �� ����� &�� �� .��� �� -���� �� &�� ��� � �#

����� �� ��������� � � ����� � ������� � ���� .��� ��� ������% !� &�� ��

+���� � ������ ������� �� ! � � ��� �� � ����� ������ ��� 0� �������% �����

�� ������� � ��� �� �� �,������ ��� �����% ���� �� ���� ������ �� �������

��&� ��������% ���� �� ��� &�� ��� ���������� ! � ����� � ��� �� �� �D�

���% �� ��,�� �� �� �� ��� �� ����� �� � � � ��� �� � ���� � �,���� ��% ��� ��

��/ � ��� �� �� ��� � ��� ����������� ! �� � � � ��� �� � ��� ������ �

����� ��� ��% ���� �� ���� �� �� � ��� �� �������� �� �� �� �����N

�H �� ���� ��� ������ � -������� �����������% ���� ��,���� �� ������� ����

�H ������� ��� ������ &�� �� ����� ��� -������������� �� �� � ��� �����#

����% ���� ���������� �� ����� ��

����������% ����� �� �������� �� �������� �� ������� ����� �� ���3 �#

��% �� ��� �������� � ������� ��)� ��� ���� � � �������� ��� � � ����#

�����% �� � � ��� �� � ��� �������� ���� ����� �� � �� �D���� � ������ &��

����� ��� � ����� �� �� ���� ����������

���� 1*032 ,* *;*+6+18( 3/4/.*./

���� �������� �� � ���� � ������� &�� �� ��&� ��� ���� �,������ �� ����#

� ��� ��������% �� ���� �� ����� ��% ���� �� ��� ����� ���% �� �D���� �

����� �������� ������ &�� �� ��&� ����% ! ������ ������� �� ��� �� �� � ����

� ����� ��� �� ����� ��� -������� ������ �� ��� &�� �� ��������� �� ����#

� ���� 0� �� � ����� � ���� � �����,��% �� � ���� � ����� ��� �� ���

4.2. TIEMPO DE EJECUCIÓN PARALELA <B

��� ���� ���� ���� ����� �� � ���� � �,���� �� ������ �� ��������% ���

���� �� ���� �� � ���� ����� � �,���� �� tp ���� ��������� � �� ������% ��

� ���� � �������� �� tcomp, ! �� � ���� � ����� ��� �� tcomm% �� �� �%

tp = tcomp + tcomm

0� � ���� � �������� �� �� ��� ��� � ������ � � ��� � �� � �� ����#

� ��� ������� ��% ! �� ������� ���� ����� ���� ��� ����� �������� ������

&�� �� ���� ��� �� ��� �����% ���� .���� �&������ &�� �� ����� �,������

�� � ������� �% ��� ��� &�� �� �,������ ������� �������� ���� �����

&�� ��� ���� �������� ���� �� �,����� �� ��� �� � � �� � �� � ��#

��% ���������� &�� �� � ��� �� ����� ��� �������� &�� ������ � 9; �����

�������� ������% &�� �� � ���� �� �����������% ! &�� �� ������� � ����� ��

�� -����% �� �� �% &�� ��� ��������� ����� �,������ : �����M �������� ��

� ���� � �,���� �� ���� � : �� ���� 0� ���� �,�����% ���������� &�� ��

� ��� �� ����� ��� ��� 9? ����� �������� ������% � ��� ������ < �� �����

�,������ �� �������� ! > � ���� &�� �,�������� ������� �������� 2 �� ���� ����

�� � ���� �� �����������% �������� � ��� < ����� &�� �� ����� �,������ ��

��������% ���� : ����� +������ � �������������% !� &�� �� ������� � �����

�� �� �/����% ��� �� &�� ��� � ��� ����������� ����� &�� �,������ �� ����

��������% ! �� ���������� � �� ��&��� ��� < �� ��� � � ���� ���� �,������

�� ����� ���N 3� ��������� + 1�������� + 3������� ����� 0� �������% �������� �� � ����

����� � �,���� �� � �� �������� �������� ���� �������� ����� ���% !� &��

����� � ��� �� -�������% ���� ����� ��� �� ������� � �����,� ! �� �D��#

�� � �� ��� � �������� ����% ��� �� &�� �� �/ ���� -������� � ������

����.� ��� �������� �� � ���� ��� ��� ���� ��&��� � �� ������,� ���� � �

������� ��% ! ���� ����� �������� ��� �� ����� � � ��� � �� ��)����

0� �������% ���� �� ��� ��� �� �� � ���� � �������� �� � �� ������#

�� ��������% �� ������ &�� ��� ������ �� �,������ �� ����������� �� � ���

� �� ! ����� �% &�� �/ ���� ������ ����������� ���� ������ �� ��� &�� ��

��������� �� ����� ���% ! &�� +�! �� ������� �� -���� �� �� &�� +��� ���

������ ��� �������� � &�� ��� ����������� ��� �� � ��� � �� ! ����� �% ��

��� �� ���� � ������ ���� ��������� � �������� ���� � ���� ��% ���� �� ��#

����� ������ ���� � ������ ������ �� ���� �����������% ���� ��� � ���

����������� ��� ���������� � �����% �� &�� �� ����� �������� ��� �� ���

=? CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

+����������� � �������� ����% �� �� �% &�� �� ��� �� � ��� � �� !1� ����#

� �� 0� �� ���� � &�� ��� �� ��� � �������� ���� �� ������ �� � ���

����� �% �� ��������� &�� �� ����� � � �� �� � � �������� ���� ���

��� �% �� ���� ��� 9 G���H% ! ��� ���� ����� �� �������

��� �������� �� � ���� � ����� ��� ��% ���� ����� � ��� �� -�������

���� �� ����)� �� �����,�% �� ��������� � ����/ ��% �� ��� � �����-����#

� �% ���� 0� ����� &�� ��� ��������� � � �� + ������� ����� �� �-���� �� ���

�� �� � ���� � ����� ��� ��% &�� ��� ��������� � ���� ���� �� � ��� ������#

��� "����������� ��� ��������� �� ������ ���� �� �������� ������.��% ���

�� ������ �� &�� �� ������ ��� �����,��% ��� �� .� � &�� �/ ���� �����

� ����� � ������ ! ��� � ���� �� �� �� � ����� ��� ��� 0� ��� � ����������

������.��� ��� �� ��� ���.����� �� �� �� +��4���% &�� &� �� �� ��� ��� ���

���� ��� � &�� ��� ��������� ����� �� .���� � �� �� � �� ���� ��� ���� ��#

� �� � ���������� 2 � ������� �� ���D� �� ��������� �� �������� +����

���� � � � �� -���� �� ���� �� ���� ����� ��� ��� ����������� ��� �� .� �

���� � ��� � ����� � ����� ��� ��� ��� �,�����% �� �� &�� �� �����-�����

��� � � ��� �� �� ������������ �� �� ����� ��� ��������% �� ����� ��,��

� ��� ��������� � + �������� �D� ���% �� �� �� �� � � ��� ��)� ��������

��� +������ ����� ��� &�� �� � ��� ��� �� ���% ��� �� � ���� � ����#

� ��� �� ����� ������&� ��� �� ������ �� ��������% � ����� ���� �� � ��� !

���� ������� �� ����)� �� �����,�% ��� �� &�� ������ ���� �� � �� ����

����� ��

tcomm = tstartup + n · tdata,

��� tstartup �� �� � ���� ��&��� � ���� ��� �� �� �����,� � � ����% �� �� �%

�� �� � ���� &�� �� ��&� ��� ���� ���������� �� ����� ��� �� ����� �� ������

������&� ���M �� �� ����� � ���� � ������ � �� �����,� ! �� ������ ����������

0� ���� �� tdata �� �� � ���� � ������ � �� ���� ��� �� �� � �� � ���% !

���� �� �� ������ ���������M ! n �� �� �D���� � ���� �� � ��� � �� &��

����� ��� ��� �����

���� �� ����� ��� �� ����� ������% ���� ��� &�� �� +�! -����� � � �� #

.��� �� � � ���� ����� ��� �� �� ������ � �� �D���� ���� � ���� � �� � ���

�� � � ��% �� �� �% �� ����� &�� �� ����� ����� �� ��&� ��� �� � ��� � �����

2 �� �������� �������� ��&� ��� ��� �� q �����,�� ����� ��� ������% ��� ���

4.2. TIEMPO DE EJECUCIÓN PARALELA =9

������ ��� n ����% �������� �� � ���� � ����� ��� �� ����� ��

tcomm = q (tstartup + n · tdata)

0� � ���� � ������ � tstartup ����� ���������� �� � ����� �������� ����%

! ���� ��� �� ���� ������ ����� ��� �� ���� � ������� ��� �,�����% �� ���

�C�P $>� ��� �� PVM � ��� �� tstartup � >µ�% �� � ���� � ������ � �� ����

�� � �� double G3������ � ���� ���� � ��H �� � :>�� Gtdata=doubleH ! �� � ����

��� ������ �� �� ���� �� � � �� double �� � 99��M � ������ &�� �� �' 2�#;

��� MPI � ��� �� tstartup � >Aµ�% �� � ���� � ������ � �� ���� �� � �� �����

� ;>?�� ! �� � ���� ��� ������ �� �� ���� �� � @�;��� 0��� �������� ��

���� �� ��� &�� +�! � ������ &�� ��� ������� �� �� �� ���� �� � ����� 3������

���� &�� � ���� ��� ����� ������ � �� � ����M � ������ ����� � ������ ���

��� ������� �� �� ������ � �� � ���� ���� ��� ������ �� �� �� ���� �� �

����� 3������� 0���� ������� ��� ����� ���� � ���� ���� �� �� ��)� �

�� �������� ��������% ���� ����� ��� �� �D���� � �����,�� ! �� ���� ��

����� ���% ��� �� .� � �� �� � �� � ���� � ����� ��� ���

7����� �� � �� ���� �,������ 2��������� &�� ������� &�� ����� n �D#

����� �� �� �����������% ! &�� ��� �D����� ����� � � ������� ������ ��

�� �� �� ����% ��� �� &�� ���� ��� ��� �� n2 �D����� � �� ������% �� &�� �

�� ��� ��� ��� �� �� �������� � �� �� ����% �� ���� �� ������� � ����� ���

�� ��������� ���� ���� ���� �� �� ���� ������ 8��������� &�� ���� �����

n �D����� ����� ����� n − 1 ����� � ����� �������� ������% ��� &�� ����

�������� � ��� ��� � �� ����� -����N

9� (� ���������� ����� n2 �D����� � �� ���������� �

;� ����� ����������� ����� n2 �D����� � ��������������

>� (� ���������� ���� �� �������� ���� �� � �� ���������� �

@� (� ���������� ���� ��� ��������� ���� ���� ���� �� �� ��������

.����

��� �� �����% �� �,������ n−12 ����� �������� ������ �� �������� ! 9 ����

�������� ���� ������� ��% &�� �� �� ���� � ��� ��������� ���� ����% &��

=; CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

���� �� �� ���������� � ��� ���� �� ����% �� � ���� � �������� �� ���� ���

����� G;H ! G@H ��

tcomp =n − 1

2+ 1,

! �� � ���� � ����� ��� �� ��&��� � ���� ��� ����� G9H ! G>H ��

tcomm =(tstartup +

n

2tdata

)+ (tstartup + tdata)

= 2tstartup +(n

2+ 1)

tdata

���� �.<241)02- 3/4/.*.2- 3/4/ ,1D*4*(+1/- 7(1)/-

J� ����� ��� � -����� �� .� ��� � ��� ��� ���������� �������� 2�'��

���� ������ �� �������� � -����� �� .� ��� ���� #�� ���� ����% �� ��

���� ������� �� ������ X(0) � ����)� N ! ����� ����� �������� X(T )% ���

Xt+1i =

Xti−1 + 2Xt

i + Xti+1

4, ��� 0 < i < N − 1, 0 ≤ t < T,

�� �� �% &�� ������ ������ ��� ����� ������� ��� �������� � X �� ��

� ���� t + 1, +���� �� T ������ ���� ������ � ���� ���� ������ �� ����� ��

�������� Xi �� �� � ���� t + 1% ������ ������� Xi−1, Xi, Xi+1% �� �� � ���� t.

J� ����� ��� �������� ���� ���� �������� ���� ��� �� ����� N ������% ���

���� ��� �������� � X. (� i#�� �� ����� ������ �� ����� � X(0)i ! �� ���#

�������� � �������� ��� ������� � X(1)i % X

(2)i %..., X

(T )i . ���� ��� ����� i, ��

����� ��� &��� � �� � �� ���� ������N

9� 0�� �� �� ����� � X(t)i % � ��� ������ ��� ��� i − 1 � i + 1%

;� C�� � � X(t)i−1 ! X

(t)i+1 � ��� ������ ��� ���% !

>� J� � ��� ����� ������� ���� �������� X(t+1)i .

(�� N ������ ����� ��� �,������� ����� ���������% ��� �� ����� �#

� �� � &�� �� ���� � �,���� �� ���� ����� ��� ��� ��� ������ ���� �

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS =>

������ ��� 0��� � ����� ��� �� ������� &�� � ��D� �������� � X ���� ���

�������� �� �� � ���� t+1% +���� &�� ��� ��������� ��� ��� � X �� �� � ����

t, ���� ���������� ��� �� �����% �� �,���� �� �� ����� ���� ���

0� ���� � ��� ���� � ������ ���� ���� �� �������� � -����� ��

.� ��� � ���� ����% ��� ��� �� �� �� �� � ����� (� � �� ���� �/���� ��

X(t+1)i,j =

4X(t)i,j + X

(t)i−1,j + X

(t)i+1,j + X

(t)i,j−1 + X

(t)i,j+1

8�� � �� � ��� ������ �� �� � ���� t% ���� ������ ��� ��� �������� � Xi,j �� ��

� ���� t + 1�

������ ���� � &�� ��� ���� � �� �� �������� ���� ��� �� ����� ���

����� ���� ��� ����� Xi,j � �� ����� � ���� ���� X. 0� �� �% ��� �����

�� �� ���� � �� �������� Xi,j , ! �� �������� � �������� �� ������� �

X(1)i,j , X

(2)i,j , X

(3)i,j , . . .

0��� ������� ��&� ��� � ��� ������ ��������� ����� ������� ��

X(0)i−1,j , X

(1)i−1,j , X

(2)i−1,j , ...

X(0)i+1,j , X

(1)i+1,j , X

(2)i+1,j , ...

X(0)i,j−1, X

(1)i,j−1, X

(2)i,j−1, ...

X(0)i,j+1, X

(1)i,j+1, X

(2)i,j+1, ...,

��� ������ ��� ����� �� ��� ��� ������ ������ &�� ����,�� ��� ������ Xi−1,j ,

Xi+1,j , Xi,j−1, ! Xi,j+1% �� �� �% ��� ��� ������ ��� ��� � Xi,j� ��� �� �����%

����� ����� ����� ��� ��� ����� &�� ����,� �� �������� Xi,j% ��� ��� ������

��� ����

��� ����� �,����� �� � �� ���� ����� ���N

���� t = 0 +���� T − 1% ��� �� X(t)i,j � ��� ����� ��� ���

C�� � � X(t)i−1,j , X

(t)i+1,j , X

(t)i,j−1, X

(t)i,j+1 � ��� ������ ��� ����

�������� X(t+1)i,j .

=@ CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

jiX ,

jiX ,1�

jiX ,1�

1, �jiX 1, �jiX

Figura 4.3-F25. Estructura de tareas de granularidad

fina sobre una malla bidimensional

2 �� ���� ��� ��� ����� ��� ��� ����� Xi,j% �� �������� �� �������� ��

� �������� � .��% ! ���� �� �������� �� ������� ���� ��� �� �/��� �� ���#

� � � �����,��% !� &�� ��� ����� &�� ����� ����� �� ����� ���� �� �� ��

��������� �� �� ����,� � = �����,��% � ��� ������ @ ��� ���� �� ��� !

��� ����� @ ���� ��������% ���� ���� ����� �� �� .���� G@�># 25H% ��� ���

3��+�� � ��� �� ���� �� �� �����,�� (�� ������ �� ����� � ��� ������

-�������% &�� �� ��� ��� ��&� ���% ����,�� : �����,��% > � ����� ! > �

������ ��M ! ��� ������ �� ����� � ��� ������ -������� &�� ��� ��&� ��% ��#

��,�� @ �����,��% ; � ����� ! ; � ������ ��� 2 �� ����� ���� ���-����� ���

@A%??? ������ �������% ����� ������� � ����� @A%??? ������% ! �� ��&��� ����

����/ �������� >:?%??? �����,��% ��� �� &�� �� ��� ��� �� ������� ��,�� �

�������� �� �������� � ������ �.� ����� 0��� ������� ���� ������� &�� ��

��� ������ ���� �� �������� � ������ ���� ��� ���������

�� �������� �� �������� � �� ����� �� �D���� � �����,��% ! ��� �����

����� ��������� � ��� ������ �� � ������ � �� ����� X.

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS =A

Tarea

Conjunto de puntos a ser enviados

Mensajes

Figura 4.3-F26. Estructura de tareas de granularidad gruesa

(� .���� G@�># 26H ������� �� ���.����� �� �������� �� &�� ��� ������ ���

��������� � �������� �� ���,���� � ������ � �� ����� X% �� ���� ����

��� ����� ����,� @ �����,��% ; � ����� ! ; � ������ ��� 0� ��� �����,�

���� ��� ��� ��� �� ���,���� � ������� ! �� ���� �� �����% � � ������� ��

������ ���� ���� ��� ����� �����,�� &�� ����������� ��� �� ����% �� ����� �

��� �� �����,�� &�� ����������� ����� ����% �� � � &�� �� ��!�� ����� �

�� ������ � �� �� �����% ���� ����� � �� �� �������� � ���� � �� ����/ ���

0� �� ����� � ����� � ������� � ��� ��� ��� ��� �� ���� + ���% ���#

�� �� ����� ����� ����� ���� � ����� ��� �� ���� �����,�� � ��������%

!� &�� �� ������� � ���� ���� � ������ � �����% ���� ��� ������� � ���

���� �� ������ G+ ���H% ��� �� &�� �� �� ��&� ��� ����� ��� �� ����� ������%

���� �� ����� ���� �� ����� ��� � � ����� ��� �� ���� �������� ��������#

����� ��� ������� 2 � ������� �� ���� �������� &�� �� ����� � ���� � ��

��� ��&� �� ��� �� � ��� ����������� ���� ���������� ��� ����� ��

=: CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

���� + ���% ��� �� ���� ������ (� ��&� ������� � �� ���� ���������� ���� #

�� �������� ���� � �� � ��������� � �� ����� �����% ���� ��� �� ������� ����

� &�� ��� ������ ���� ��� �� ������� � �������� � �� � � �������

���� ����� �� ���� �� �������� � ��� ��� �� � �� ����������� ����� ���

����� � �����% �� ���� �� ������ ��� �� ����� �� -����� �� ���� ��

hxx + hyy = aut.

2� ���� ��� ��� ��� �� � ����� ������ G.���� G@�># 27HH% � �� &�� ��

������ �� ����������� �� ���� ��� ������ � �� -�������% ! �� ����������� ��

���� �� � �� ��� �� ������� � �+�� ��� � ����� ������ ��������� ��

��� ��� �� � �� ����������� � ��� �� ���� �� ��� .�� ����� � ������

hi,j% ��� 0 ≤ i ≤ n ! 0 ≤ j ≤ n. (�� ������ � ����� �� �� -������� hi,0, h0,j ,

hn,j , hi,n, ��� 0 ≤ i ≤ n ! 0 ≤ j ≤ n, �� ������� ��� �� � ��� �����������% ��

����% ���� �� ,�% �� ����� �� (�� ������ ���� ���� hi,j , ��� 1 ≤ i ≤ n− 1 !1 ≤ j ≤ n − 1, ��� �� ����� (n − 1)2% ! ��� ������������ ����� ��� ���������

��� �� � �� ���� ����� �� � -����� �� .� ���

hi,j =hi−1,j + hi+1,j + hi,j−1 + hi,j+1

4,

�� ���� �� ��� ��� ��� ��� ������� �� � �� ����� �� -����� �� ���� �� &��

����� �� 3�,��

placa de metal

Figura 4.3-F27. Problema de distribución de calor

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS =<

2��������� &�� �� ����������� �� ��� ����� ���� ��������� �� ��

������� � ���� ���� h[i][j]% ��� ������ � �� -������� h[0][x]% h[x][0]%

h[n][x] ! h[x][n]% ��� 0 ≤ x ≤ n% +�� � � � � �� ���� ��� ��� �������

��������� ����� � �� ����������� �� �� -�������% ! ��� ������ ���� ���� �����

� � �� ���� �� ?�? G����H� 0� �������% �� � ���� �� �� ������� �� �� ������,�

C% �� ������� � ���� ���� ��N

for(iteration=0; iteration<limit; iteration++){

for(i=1; i<n; i++)

for(j=1; j<n; j++)

g[i][j]=0.25*(h[i-1][j]+h[i+1][j]+h[i][j-1]+h[i][j+1]);

for(i=1; i<n; i++) /*actualización de puntos*/

for(j=1; j<n; j++)

h[i][j]=g[i][j];

}

0� �� �� �� ����� �� ������� �� � ���� �� �D���� .,� � ����� ����%

&�� �� �� �D���� � ����� &�� �� ����� �� �� ������� ����� ���� ��� ������

���� ���� hi,j% �� �� �% ��� ����� ���� ����� �� � ����% ��� �� &�� �� � ����� ��

������� �������� g[][] ���� ��������� ��� ������ ������� ��������� � ���� �

� ��� ������ � h[][]� ������ ������� �� ������� h[][] �� ������ ��� ���

��� ������ ������� ������ �� �� g[][]� ������ &�� �� ���� �� �� ��� ?�;A ��

��� � � � ��� @�?% �� � � &�� �� ���� �� ��� �� �� ��� �.� ����% ��� ��

����� � � ��� �� +��4���% &�� �� � � ��� �������� ���� ����% ���� ��,����

�� ����� � � �� ����� � ����% ���� �� ���� ������� �� ������ �� ��

��������� �� ��������% ���&�� �� ���� ���� ���� �� ��������� � �������

�� �� �� ��� ��% �� ��� ��� ���� �� ��� �� � ��� � � ���

0/ ���� -������� ������� �� &�� �� �� �� ���� ��� ���� ��% ���� ���

� �� ���� � �� ��� &�� �� ��&� ���� ��� ��������� J�� ��� �� � �� �� ����

��� �� � �� ����N

do{

for(i=1; i<n; i++){

for(j=1; j<n; j++)

g[i][j]=0.25*(h[i-1][j]+h[i+1][j]+h[i][j-1]+h[i][j+1]);

for(i=1; i<n; i++) /*actualización de puntos*/

== CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

for(j=1; j<n; j++)

h[i][j]=g[i][j];

continue=FALSE; /*indica si se debe continuar*/

for(i=1; i<n; i++) /*checar la convergencia de cada punto*/

for(j=1; j<n; j++)

if(!converged(i,j)) { /*buscar puntos sin convergencia*/

continue=TRUE;

break;

}

}

0� �� �� ����� �� ��� .�� �� ���������� � ������ � &�� ���� ��� ������

+�� � � ���������% �� &�� ���� �� �� ��� � -������� ����� ���� ���� +�#

��� �+� ��� .��� ��� (� ��� �� converged(i,j) ������� TRUE � �� ��������

g[i][j] +� ������� � ��� �� ���� � �� ��&��� � �� ���� ���� ������� FALSE�

(� ������ ������� continue ��� ��� TRUE � �� ��� ����� ��% �� ����� ��

����� �� ����� � ��� �� �� ��� � � ���������� ��

���� �� ��� ����/ ��� �� � ���� ��� ���.������� �� �� �� ��������%

��������� �� �� ��� ������ � &�� ������� �� ������� � ����� ��� ���

����� Pi,j , ! ��� �� �����% �� ��� ���� � � � ����% ��� ������� ��&� ��� �

��� ��������� � ��� ������ � ��� ������ ��� ���% ���� ���� �������� �� ��!��

���� ���� ��� ������ ���� ���� Pi,j% ����������� &�� �� � ��� �� �D����

.,� � ����� ����% ��� �������� ����� �������� �� � �� ���� �� ��N

for(iteration=0; iteration<limit; iteration++){

g = 0.25*(w + x + y + z);

send(&g, Pi-1,j);

send(&g, Pi+1,j);

send(&g, Pi,j-1);

send(&g, Pi,j+1);

recv(&w, Pi-1,j);

recv(&x, Pi+1,j);

recv(&y, Pi,j-1);

recv(&z, Pi,j+1);

}

J�� ��� � � �� ���� ��� ������� � w% x% y !z% ��� ������� � ��� �� ���� �

� ��� � ����� ��% ! �� �D���� � ����� ���� GlimitH ��� ��� ��� �� �����

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS =B

� ������� �� � ���� 0� ��������� ��)���� &�� �� ��� �� � ��� �� ���� �� ��

��������� �� ����� send()% ���� �� ������� � &�� �� ������ �� recv() ���

��������� �� �� ������� ��� ��M � �� �� ���� �� � ���� ������% �� �������

&��� ���&���� G��������H% �������� ��� ������ �� &�� ����� ���� ���#

������� (�� ������ recv() ���� ��� � ����� ���� ! ���� ������� ��� ���

��������� ����� ������ send()�

���� ���������� �� ���� �� � �� �� �� &�� ��� �������� ������� ���

�������� ��� ��� &�� �� ������ �� �� ��� � � ���� � ��% �� ��&� ��� � ��

������� ������� �� ���� ��� .���� � ���� ��� ����� �������� G��������H �����

��������� J� ������� ������� ���� ��� .��� �� ������� &�� �� ���� � �� �����

+� � � ��������� ���� �,����� � ���� �� � �� ��% ���� � ��� �� � �� ����N

iteration = 0;

do {

iteration++;

g = 0.25*(w + x + y + z)

send(&g, Pi-1,j);

send(&g, Pi+1,j);

send(&g, Pi,j-1);

send(&g, Pi,j+1);

recv(&w, Pi-1,j);

recv(&x, Pi+1,j);

recv(&y, Pi,j-1);

recv(&z, Pi,j+1);

} while((!converged(i,j)) && (iteration < limit));

send(&g, &i, &j, &iteration, Pmaster);

(� .���� G@�># 28H ������� �� �� ��� ! ��� �� � ��� �����,�� ��� �� �

� 3��+��% � ��� ���.����� �� � A �������

B? CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

send(g,Pi-1,j);send(g,Pi+1,j);send(g,Pi,j-1);send(g,Pi,j+1);recv(w,Pi-1,j);

recv(y,Pi,j-1);recv(z,Pi,j+1);

recv(x,Pi+1,j);

send(g,Pi-1,j);send(g,Pi+1,j);send(g,Pi,j-1);send(g,Pi,j+1);recv(w,Pi-1,j);

recv(y,Pi,j-1);recv(z,Pi,j+1);

recv(x,Pi+1,j);

send(g,Pi-1,j);send(g,Pi+1,j);send(g,Pi,j-1);send(g,Pi,j+1);recv(w,Pi-1,j);

recv(y,Pi,j-1);recv(z,Pi,j+1);

recv(x,Pi+1,j);

send(g,Pi-1,j);send(g,Pi+1,j);send(g,Pi,j-1);send(g,Pi,j+1);recv(w,Pi-1,j);

recv(y,Pi,j-1);recv(z,Pi,j+1);

recv(x,Pi+1,j);

send(g,Pi-1,j);send(g,Pi+1,j);send(g,Pi,j-1);send(g,Pi,j+1);recv(w,Pi-1,j);

recv(y,Pi,j-1);recv(z,Pi,j+1);

recv(x,Pi+1,j);

Figura 4.3-F28. Paso de mensajes para el problema

de la distribución de calor

���� ����,�� ��� �������� &�� ������ �� ��� -��������% ������ �� � ��� ��

��� .���� G�H � ��������% �� ���� ��� ����� ���� �� �� �������� ���� ����

����% �� �� �� ���� ��� ���� � ���N

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS B9

if (primer_renglon) x = valor_superior;

if (primer_columna) y = valor_izquierda;

if (ultimo_renglon) w = valor_inferior;

if (primer_renglon) x = valor_superior;

if (primer_columna) y = valor_izquierda;

if (ultima_columna) z = valor_derecho;

iteration = 0;

do {

iteration++; g = 0.25*(w + x + y + z)

if !(primer_renglon) send(&g, Pi-1,j);

if !(ultimo_renglon) send(&g, Pi+1,j);

if !(primer_columna) send(&g, Pi,j-1);

if !(ultima_columna) send(&g, Pi,j+1);

if !(ultimo_renglon) recv(&w, Pi-1,j);

if !(primer_renglon) recv(&x, Pi+1,j);

if !(primer_columna) recv(&y, Pi,j-1);

if !(ultima_columna) recv(&z, Pi,j+1);

} while((!converged(i,j)) && (iteration < limit));

send(&g, &i, &j, &iteration, Pmaster);

����������� +�! &�� �� ���� �� ������� � ��� � �� ����� � �� �������%

�� � � &��% �� �������% �/ �� ��� ��� ������ &�� ����������� -�� ���� 0�

���������� �% �� ����� � ������ ��� ��� ���� �% ! ���� ���� ���� ���� �����

�� ���&��� ������� � �� ��������% ���� �� � �� �� �� .���� G@�># 29H�

B; CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

Figura 4.3-F29. Partición para el problema de la distribución de calor

0� �� ���� � �� ��� ���&��� �/ ���� ������ ������ � ������ -�������% ���

��� � ��� ������ �������� � �����,�� ��� �� ����� �������� ��� ��% ��� ��

&�� ��� ������� ��� ��� �� ������ �����,�� ! ��� � � ����� ������% �� ���

����� ��� ���� ��� &�� ��� ������ � �� ����� � ��� ����� -������� ��� ��#

������ �� �� ���� �����,�% �� � ���� � ����� ��� �� ��� ������� ���� ��

���

tcommsq = 8(

tstartup +n√ptdata

),

��� p �� �� �D���� � ���� � ����� 0��� ����� �� �� ��� � ��������� ���� ���

�������� &�� � ���� ������ -�������� � ����� ��� ��% ! ��� �� ����� tcommsq ��

�� � ���� ��/ �� � ����� ��� �� � �� ������� �� �� ���� � �� ��� ���&����

0� �� ���� � �� ��� �������� �/ ���� �� ������ � ������ -�������% ���

��� � ��� ������ �������� � �����,�� ��� �� ����� �������� ��� ��% ��� &��

4.3. ALGORITMOS PARALELOS PARA DIFERENCIAS FINITAS B>

��� ������� ������ �� �����,�� ! ��� �� ����� ��% �� ��� ����� ��� 0�

���� ���� �� � ���� � ����� ��� �� ��� ������� ���� ����� ��� ���

tcommcol = 4 (tstartup + ntdata) .

8��������� &�� �� � ���� � ����� ��� �� �� ����� �� �D���� �

���� � �����

(�� � ����� � ����� ��� �� tcommsq ! tcommcol ����� ��������� �3���� �#

�� ��� �� � ���� � ������ � tstartup� ��� �,�����% ���������� &�� tstartup =10, 000% tdata = 50 ! n = 32. ��� �+�� ������� �� � ���� � ����� ��� �� �

�� ���� � �� ��� �������� �� tcommcol = 46, 400 G�� ��� � � ����H% ! �� � ��#�� � ����� ��� �� ���� �� ���� � �� ��� ���&��� �� tcommsq = 80, 000 + 12,800√

p

G�� ��� � � ����H� 0� ���� ���� �� ����� &�� ���� ����&� �� ����� � p, ��

� ���� � ����� ��� �� ���� �� ���� � �� ��� ���&��� � ����� ���� ��!�� &��

�� � ���� � ����� ��� �� ���� �� ���� � �� ��� ��������� 2 �+��� ������#

��� &�� tstartup = 100% tdata = 50 ! n = 32, �������� �� � ���� tcommcol = 6, 800 !tcommsq = 800 + 12,800√

p , ��� �� &��% ���� ���� �,�����% tcommcol > tcommsq, � p > 4�

0� �������% �� ���� � �� ��� �������� �� ��,�� � �� � ��� �� � ���� �

������ � �����M ! �� ���� � �� ��� ���&��� �� ��,�� � �� � ��� �� � ���� �

������ � ��&��)�� ���� ����� ! ��&��)� ��� ������� ���,�� ���% ����� &��

�� � ���� � ����� ��� �� � �� ���� � �� ��� ���&��� �� ��!�� &�� �� � ����

� ����� ��� �� � �� ���� � �� ��� ��������% �

8(

tstartup +n√ptdata

)> 4 (tstartup + ntdata) ,

�� �� �% �

tstartup > n

(1 − 2√

p

)tdata

���� � � ���� �� ����� �� ���� ��� ����������� ����� �� ��)�� ���#

������ ����������

B@ CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

���� �/4/.*.1=/(,2 *. /.<241)02 �/+240/+E

���� ����� �� ����� �� G<H � �� ���� �� G>�;H%

∂F1

∂ξ= −[(

∂η

∂x

)∂F1

∂η+

1yz(x) − ys(x)

∂G1

∂η

],

�� ���� �� ����� �� � ����� � ����� ���� &�� ������ �� 3�,� ����� ���� ��

0� �� �� ���� ����� �� ����� ��� '��������5 G���� ��� ����H% �� ����� ��

G<H �� ���� �� �� ���� ��� � -����� �� +�� � �������% ! ������ ������� ��

���� ��� � -����� �� +�� � ����� G���� ���������H�

2 �� ��� �� ��&���� � �� ���� �� ����� ��% ������ � � �� �������#

� �� �� ������ &�� �����,�� ����� ��� ����� �� ����� � � ����� �� �� �� �,� η,

�� �� �% � ������� m ������ ������� &�� � �� �� ����� � � ����� �� ��#

��� �� �,� η% �������� ������ � � �� ������� �� k ������% ��� �� �D����

� ������ � ��� &�� �� ������� � �������� ��� ����� ��m

kM � �� � � ��

�� �� �/���� �������� �� �D���� � ������ ��������� �� ��� �� �� ����� ���

������� ��� �,�����% � ������� @? ������ ������� ����� η, ! �� &�������

� � �� : ������% �������� +���� ������ ������ &�� �� ��������� � �����,��

����� < ������% ! �� ������ ����� :� 2 �� �������� �� �� &� ��� � � �����

@ ������% �������� ��� ����� �����,��� ����� 9? �������

2 m = 40 ! k = 4, �������� ��� �������� j1, j2, j3, j4 � ��� �����% �����#

,���� ����� ��� � �� ����� ������N

j1 = 1, . . . , 10

j2 = 11, . . . , 20

j3 = 21, . . . , 30

j4 = 31, . . . , 40

(� .���� G@�@# 30H ������� �� ���.����� �� � ������ ������ ������� �����

�� � ��� ����� � � ����� ��% ��� 3��+�� &�� ������ � ��� ������ � ��� ���

�����,�� ! ��� 3��+�� ������� � ��� ����� � ��� �� ���� �� �� ��������

4.4. PARALELIZANDO EL ALGORITMO MACCORMACK BA

i i+1

j+1

j-1

j

punto discreto

que debe ser enviado

a su tarea vecina

tarea

Figura 4.4-F30. Diseño de granularidad fina

0� ���� ��� � -����� �� +�� � �������% �� ����� �� G<H �� ���� �� ����

(∂F1

∂ξ

)i,j

=(

∂η

∂x

)(F1)i,j − (F1)i,j+1

∆η+

1yz(x) − ys(x)

(G1)i,j − (G1)i,j+1

∆η,

-���� ��&��� � ���� �������� ��� -����� �� .� ��� �� �� ����� ��� �� (i, j) ,

��� i = 1 . . . n ! j = 1 . . . mM ! ��� n �� �� �D���� � ���� � ���� �����

�� �,� ξ ! m �� �D���� � ���� � ���� ����� �� �,� η� 2 &������� ��� �� �

�� �������� �� �� k ������% ����� ��� &�� � ��� ����� �� ���������� ��

� ��� �D���� � ������% �������� �� ������� � �� ���� ��(

∂F1∂ξ

)i,j���� ���

B: CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

��� �� � ���� � ���N(∂F1

∂ξ

)i,j1

j1 = 1, 2, . . . ,(m

t

), �� �� ����� 1

(∂F1

∂ξ

)i,j2

j2 =(m

k

)+ 1,(m

k

)+ 2, . . . , 2

(m

k

), �� �� ����� 2

(∂F1

∂ξ

)i,j3

j3 = 2(m

k

)+ 1, 2

(m

k

)+ 2, . . . , 3

(m

k

), �� �� ����� 2

���(∂F1

∂ξ

)i,jk

jk = (k − 1)(m

k

)+ 1, . . . , k

(m

k

)= m �� �� ����� k

0� �� �� ��� ������� ���� &�� �������� �� ����� ��� �������� ��� � ����

� -����� �� .� ���% �� &�� ��&� ��� �� ����� �� ���� � �����,��% �� &��

���� �� �� ��� � ���� � �� �� � �� �� � ������ � ����� � ��� �� �% ���

�� ����� � � ���� � ����� � �����,�� �� ������ 2��������� &�� ������

������� ����� >?? ������ ������� �� �� �,� ξ% ! &�� ������� @ ������% �����#

��� �� ��� ����� �� �� ������ ��� �� : �����,��% ! ��� �� ����� +���� &��

���� ��� 300 × 6 = 1800 �����,�� &�� ����������� �� �����% ! ���� ���������

���� �� ���� � �� ����� �� G<H% &�� ���������� � �� ��� ���� � 3�,� F1� � #

� ���������% ���� �� ������ ����� @ ������ ��� ��� ��� � ��� ����� ����

G=H% GBH% G9?H � �� ���� �� G>�;H% ��� &�� ����������� ��� ����� ��� ����� � 3�,�

F2, F3, F4% �� &�� � �� ����� � 1800×4 = 7200 �����,��% ��� �� &�� �� ��������� ������� ��� ! �� ����� �� ����� ��

���� ���� � �� ���� � � �����,�� �� ������� �� �������� � � ���

������% ! ���� ������� ������ ��� �� � ����� � ����� ���� -����� ���� ! ��

���� ��� ����� ��% ������ �� ���� ��� ����� ��� ��� ��� � ��� ����� ����

�� � �����% ���� ��% ��� ��� ����� �� (7) , (8) , (9) ! (10) .

(� .���� G@�@# 31H ������� �� ���.����� �� � ������ ������ ������� ���

��� ����� �� ����� � � ����� ��% �� � ���� ��� �����,�� &�� �� ��������

�� �� .���� G@�@# 30)�

4.4. PARALELIZANDO EL ALGORITMO MACCORMACK B<

Tarea�de�granularidad

gruesa,�cada�una�trabajando

en�una�variable�de�flujo F

1F

2F

3F

4F

Figura 4.4-F31. Diseño de granularidad gruesa

para el flujo estacionario

�� ����� ������ ������% ��� ��� ��� ���� �� � 3�,� F1% F2% F3 ! F4 �� �����

q (q = 1, 2, 3, 4) ���� �� �������� � ���� ��� ���� ��� �������� ������� �� ����������� �� ����� ����� � Fq �� �� ����� ��� �� i + 1� � �+�� �������� �� � ���������� �N

9� �������� ��� -����� �� +�� � ������� �� ���� ���������

;� �������� �� � ���� � ��� .� �� ���� �� ���� ���������

>� �������� �� ����� ��� �+� � Fq

@� �������� ��� -����� �� +�� � ����� �� ���� ���������% �� � ���� �� �����

��� �+� � Fq.

A� �������� �� � ���� � ��� .� �� ���� �� ���� ���������

B= CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

:� �������� �� �� ��� ���� �� ����� ��

<� �������� �� ����� � �� ��� ���� � 3�,� Fq �� �� ����� ��� �� i + 1.

� � ��������� � ��� ������ ������ ����� ����% &�� ����������� ������

��������% ������� ���� �����% � �� &�� ���� ����� ����� �������% ���� ���#

������ �� �,���� �� � ��� ������ ��������% ! &�� ����� ���� �� ��� � �� �����

��������N

9� ������� ∆ξ �� �� ����� ��� �� i, ������� � ���� ������� ��� ������� ��� #

�+�� ! ������ � ��� ��� ����� � 3�,� Fq.

;� ��� �� ��� ��� � ���� � �� -������� � �������

>� �,���� ��� ��� ����� � 3�,� Fq �� �� -��������

0� ����� �� ����� � ���� � �� �� �����,� &�� ��� ����� ��� ���� ��� ��#

��� �� ������ �� � ������ (i, j) &�� ���-����� �� ����� � ���� ����% ������#� ���� �������� �� � ����� � ����� ���� -����� ���� &�� ����� �� ������#

��� ���� �� 3�,� � ���� ���� ����� ���� �� ��� ����� q (q = 1, 2, 3, 4) ������ �������� � �������� ��� ������ ������� � ��� ��� ����� � 3�,� Fq �� ���

����� ��� ���� ∆ξ1, ∆ξ1 + ∆ξ2, . . . ,n∑

i=1∆ξi�

���� �� ���� �� 3�,� � ���� ���� �� ����� ���� �% ������ ��� ��� ����#

� ���� G9>H% G9@H% G9AH ! G9:H% ���� ��� �� ������� ���� ��������

(� .���� G@�@# 32H ������� �� ���.����� �� � ������ ������ ������� ���

��� ����� �� ����� � � ����� �� ! ��� �������� �� ������ � ���� ����� �� � �����

0� ���� ���� ��� ����� q (q = 1, 2, 3, 4) ���� �� �������� � �������� ��� ������������� �� ��� ������ (i, j) � ��� ��� ����� Uq �� ��� � ����� τ0 + 1% τ0 + 2% . . .%

τ0 + k�

4.5. ALGORITMO PARALELO PARA LA FORMA ESTACIONARIA BB

�0

U2

�0+1

�0+k

�0

U1

�0+1

�0+k

�0

U4

�0+1

�0+k

�0

U3

�0+1

�0+k

Figura 4.4-F32. Diseño de granularidad gruesa para el flujo

bidimensional no estacionario

���� �.<241)02 3/4/.*.2 3/4/ ./ D240/ *-)/+12(/41/

0� ����� ��� �������� ���� �������� �� � ����� � ����� ���� -����� ����

���� ���� &�� ����� �� ��������� ���� �� 3�,� � ���� ���� ����� ���� �%

�� ���� � ���N

9� 0� ������� G�����H ������� M � � �� �� ��� ��,���� &�� ���� ���� ��� ����#

������ ! ��� ��� ����� � 3�,� F1% F2% F3% F4% G1% G2% G3 ! G4.

;� 0� ������� ������� M ���� ��� �������� G������H �������� S1% S2% S3 ! S4.

>� 0� ������� ������� M ����� �� ��,��� &�� ���� ��� ��� ���������� ����� �#

���� ��� �� 3�,�% � ��� �������� S1% S2% S3 ! S4.

9?? CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

@� 0� ������� ������� M ����� ��� ��� .������ G�H � ��� ������ S1% S2%

S3 ! S4, � ��� ������ S1% S2% S3 ! S4, ���� &�� �� ����� ����� ��� �����

���

A� 0� ������� ������� M � � �� �� ��� ��� � ���� � � ���� �� x = 0.0, !

���� �� ������� i = 1�

:� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� � 3�,� F1 ! G1

� �� ��� � �� i, � �� ����� S1� 2 � �������� �� ������ ��� ������� � ���

�������� ������� F2 ! G2% F3 ! G3% F4 ! G4 � �� ��� � �� i, � ��� ��������

S2% S3 ! S4, ������� ��������

MFki,j

��� j=1,...,41.−→ Sk, M

Gki,j��� j=1,...,41.−→ Sk , k = 1, ..., 4.

<� 0� ������� ������� ������� ∆ξ ��������� ���� � �� ��� � �� i% � ������

&�� ��� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ����(∂F1

∂ξ

),

(∂F2

∂ξ

),

(∂F3

∂ξ

)!

(∂F4

∂ξ

),

������� �������% �� � ���� ���������� ����� �������� ! �� ����������

���� ���� � ��� ��������� ����� ��� ����� F1% F2% F3 ! F4 G���� ��� ����H�

=� 0� ������� ������� ����� � ��� �������� �������� �� ����� �������� � ∆ξ�

M∆ξ−→ Sk ��� k = 1, 2, 3, 4.

B� (�� �������� �������� S1% S2% S3 ! S4 �������� ��� ������� � ��� ��� �����

��� �+�� F 1% F 2% F 3 ! F 4, ������� �������% �� �� ��� � �� i% ��� �� �����

��� � � � ∆ξ�

9?� 0� ������� S1 ����� ��� ������� ��� �+�� � F 1 � ��� ������ S2 ! S4, !

������� ��� ������� � C�

S1

F 1i,j��� j=1,...,41.−→ S2, S1

F 1i,j��� j=1,...,41.−→ S4

99� 0� ������� S2 ��� �� ��� ������� ��� �+�� � F 1 ! ������� ��� ������� �

B�

4.5. ALGORITMO PARALELO PARA LA FORMA ESTACIONARIA 9?9

9;� 0� ������� S3 ����� ��� ������� ��� �+�� � F 3 �� ������� S4�

S3

F 3i,j��� j=1,...,41.−→ S4

9>� 0� ������� S4 ��� �� ��� ������� ��� �+�� � F 1 ! F 3 ! ������� ��� �������

� A�

9@� 0� ������� S1 ����� ��� ������� ��������� � C ! F 1, �� ������� �������

M �

S1

Ci,j ��� j=1,...,41.−→ M, S1

F 1i,j��� j=1,...,41.−→ M

9A� 0� ������� S2 ����� ��� ������� ��������� � B ! F 2, �� ������� �������

M �

S2

Bi,j ��� j=1,...,41.−→ M, S2

F 2i,j��� j=1,...,41.−→ M

9:� 0� ������� S3 ����� ��� ������� � F 3 �� ������� ������� M.

S3

F 3i,j��� j=1,...,41.−→ M

9<� 0� ������� S4 ����� ��� ������� ��������� � A ! F 4, �� ������� �������

M �

S4

Ai,j ��� j=1,...,41.−→ M, S2

F 4i,j��� j=1,...,41.−→ M

9=� 0� ������� ������� ��� �� ��� ������� � A% B% C% F 1% F 2% F 3 ! F 4, ����

�������� ��� ������� � γ G��� �H ! P G���� ��H�

9B 0� ������� ������� M ����� ��� ������� � γ% F 3 ! P , �� ������� S1.

Mγi,j ��� j=1,...,41.−→ S1, M

F 3i,j��� j=1,...,41.−→ S1, M

P i,j ��� j=1,...,41.−→ S1

;?� 0� ������� ������� M ����� ��� ������� � F 3 ! P , �� ������� S2.(M

F 3i,j��� j=1,...,41.−→ S2, M

P i,j ��� j=1,...,41.−→ S2

)

9?; CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

;9� 0� ������� ������� M ����� ��� ������� � γ% F 2% F 1 ! P , �� ������� S3.

Mγi,j ��� j=1,...,41.−→ S3, M

F 2i,j��� j=1,...,41.−→ S3, M

F 1i,j��� j=1,...,41.−→ S3(

MP i,j ��� j=1,...,41.−→ S3

)

;;� 0� ������� ������� M ����� ��� ������� � γ% F 3% F 2% F 1 ! P , �� �������

S4.

Mγi,j ��� j=1,...,41.−→ S4, M

F 3i,j��� j=1,...,41.−→ S4, M

F 2i,j��� j=1,...,41.−→ S4

MF 1i,j

��� j=1,...,41.−→ S4, MP i,j ��� j=1,...,41.−→ S4

;>� 0� ������� S1 ��� �� ��� ������� � γ% F 3% ! P , ! ������� ��� ������� � G1.

;@� 0� ������� S2 ��� �� ��� ������� � F 3 ! P , ! ������� ��� ������� � G2.

;A� 0� ������� S3 ��� �� ��� ������� � γ% F 2% F 1 ! P , ! ������� ��� ������� �

G3.

;:� 0� ������� S4 ��� �� ��� ������� � γ% F 3% F 2% F 1% ! P , ! ������� ��� �������

� G4.

;<� (�� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ����(∂F1

∂ξ

),

(∂F2

∂ξ

),

(∂F3

∂ξ

)!

(∂F4

∂ξ

),

������� �������% �� � ���� ���������� ����� ���!�� ! �� ���������� ���� �

���� � ��� ��������� ����� ��� ����� F 1% F 2% F 3 ! F 4 G���� ���������H�

;=� (�� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ���� ����� �(∂F1

∂ξ

)��

,

(∂F2

∂ξ

)��

,

(∂F3

∂ξ

)��

!

(∂F4

∂ξ

)��

,

������� ��������

;B� (�� �������� S1% S2% S3 ! S4 ��������% ������� �������% ��� ������ �������

� ��� ��� ����� � 3�,� F1% F2% F3 ! F4, ��������� ����� � �� ��� � ��

i + 1.

4.5. ALGORITMO PARALELO PARA LA FORMA ESTACIONARIA 9?>

>?� (�� ������ ������� � ��� ��� ����� � 3�,� F1% F2% F3 ! F4 ��� ��� ���

�� ������� ������� M, ��� ��� ������� ��� ������ S1% S2% S3 ! S4.

S1

F1i+1,j��� j=1,...,41.−→ M, S2

F2i+1,j��� j=1,...,41.−→ M,

S3

F3i+1,j��� j=1,...,41.−→ M, S4

F4i+1,j��� j=1,...,41.−→ M

>9� 0� ������� ������� ��� �� ��� ������ ������� � ��� ��� ����� � 3�,� F1%

F2% F3 ! F4, ! �,���� ��� ��� � ���� � �� -������� �� j = 1 ! j = 41� 0����� � ����� ������� � ��� ��� ����� � 3�,� F1% F2% F3 ! F4, �� ��������

��� ������ ������� � ��� ��� ����� �� � � ��� γ% u% v% P ! T, ! ��� ������

������� � ��� ��� ����� � 3�,� G1% G2% G3 ! G4.

>;� 0� ������� ������� ���� � x �� ����� � ∆ξ (x = x + ∆ξ) , � ��������� ��

������� i �� ��� (i = i + 1)

>>� 2� ��� ��� ��� ����� �� : �� >; +���� &�� �� ����� �� x ������

������ 1/<4/0/ ,* -*+6*(+1/ B )1*032 ,* +206(1+/+18( 3/4/ ./D240/ *-)/+12(/41/

(�� ������� � ������� � ��� ��� D� � +����� ���� ���� �����������

��� �����,�� &�� �� ����� ��� ��,���� ������ �� � ��� � � �� (� .����

G@�A# 33H �� �� ������ � ������� �� &�� � �� �� ���� ! �� ���� � �

�����,�� &�� �� ���� ��� ����� ��� ��,���� ��� ��� �� ��������% ���� ������

� ���� �� -��� ��� ���� �� ����� ��� '��������5� (� ����� ���� ��� �� �����

����� � � � �� ��,���% ! ���������� �� � � �� ��,��� ������ �� ������� ���

��� �����,� �� ���������� �� ���� ��� 3��+� ����� ��� ������ � � � � ��

��,����% ! �� ���� �� �� &�� �� �� ����� �����,�� ���������� � ��� �� +�� �

���,�� ��� �����,� �� �� &����� ��� �� ����� ��� �� ������ �� �����,��

(� .���� G@�A# 34H ������� �� ������ � ����� � ��� &�� �� �� � �� ����

������� �� ������ � ������� ���

9?@ CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

Maestro :

Master

Esclavo 1 :

Slave

Esclavo 2 :

Slave

Esclavo 3 :

Slave

Esclavo 4 :

Slave

Constantes

Constantes

ConstantesConstantes

ID's

ID's

ID's

ID's

xPGF y,, 11xPGF y,, 22

xPGF y,, 33xPGF y,, 44

����

��

��

1F1F

3F

1y FC

2y FB

4y FB

3F

Figura 4.5-F33. Paso de mensajes para la forma estacionaria

(paso predictor)

4.5. ALGORITMO PARALELO PARA LA FORMA ESTACIONARIA 9?A

Ecuaciones delflujo estacionario

Crear tareas esclavas

ProgramaMaestro

Definir parámetrosiniciales

Calcular el comportamiento delflujo supersónico en el conducto

<<usa>>

Figura 4.5-F34. Casos de uso de la forma estacionaria

����������� �+��� � �������� �� � ���� � ����� ��� �� tcom_predictor% ��

��� ����� ��% ���� �� ���� ��� ����� 2�������� &�� �� ��&� ��� �� � ���

� ���� ���� ��� �� �� ������ &�� �� 3������� 0� �D���� � ������ ����� ��

�,� η �� @9�

/)2- 1*032 4*?6*41,2

0���� � ��� ���������� � ��� �������� ��� M 4(tstartup + 47 · t���

)0���� � ��� .������ � ��� �������� ��� M 4(tstartup + 20 · t���)0���� � ��� ������� � F % G% P ! x � ��� �������� ��� M> 4

(tstartup + 124 · t���

)0���� �� ����� � ∆ξ � ��� �������� ��� M 4

(tstartup + 1 · t���

)0���� � ��� ������� � F 1 ��� S1 � ��� ������ S2 ! S4 2

(tstartup + 82 · t���

)0���� � ��� ������� � F 3 ��� S3 � �� ����� S4

(tstartup + 41 · t���

)0���� � ��� ������� � C ! F 1 � �� ����� ������� ��� S1

(tstartup + 82 · t���

)0���� � ��� ������� � B ! F 2 � �� ����� ������� ��� S2

(tstartup + 82 · t���

)0���� � ��� ������� � F 3 � �� ����� ������� ��� S3

(tstartup + 41 · t���

)0���� � ��� ������� � A ! F 4 � �� ����� ������� ��� S4

(tstartup + 82 · t���

)

0� ���������� �% �� � ���� � ����� ��� �� ��&��� � �� ��� ����� ��%

���� �� ���� ��� ����% � � ������ � ���� � ����� � ���������� � � ��� .#

������% ��

tcom_predictor = 15 · tstartup + 992 · t���

>���� ��� ����� �� ���� �� ���� ��� �����,�� ��� ����� � ���� � � �&���

9?: CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

Maestro :

Master

Esclavo 1 :

Slave

Esclavo 2 :

Slave

Esclavo 3 :

Slave

Esclavo 4 :

Slave

1devalornuevo F

2devalornuevo F

3devalornuevo F

4devalornuevo F

PF y, 3�PF y3

PFF y,, 12�

PFFF y,,, 123�

Continuación de la Figura 4.5-F33.

(paso corrector)

0����� � ���������� �� � ���� � ����� ��� �� tcom_corrector, �� ��� ����#

� ��% ���� �� ���� ����������

/)2- 1*032 4*?6*41,2

0���� � ��� ������� � γ% F 3 ! P � �� ����� S1 ��� M(tstartup + 123 · t���

)0���� � ��� ������� � F 3 ! P � �� ����� S2 ��� M

(tstartup + 82 · t���

)0���� � ��� ������� � γ% F 2% F 1 ! P � �� ����� S3 ��� M

(tstartup + 164 · t���

)0���� � ��� ������� � γ% F 3% F 2% F 1 ! P � �� ����� S4 ��� M

(tstartup + 205 · t���

)0���� � ��� ������ ������� � F1 � �� ����� ������� ��� S1

(tstartup + 41 · t���

)0���� � ��� ������ ������� � F2 � �� ����� ������� ��� S2

(tstartup + 41 · t���

)0���� � ��� ������ ������� � F3 � �� ����� ������� ��� S3

(tstartup + 41 · t���

)0���� � ��� ������ ������� � F4 � �� ����� ������� ��� S4

(tstartup + 41 · t���

)

��� �� �����% �� � ���� � ����� ��� �� ��&��� � �� ��� ����� ��% ���� ��

���� ���������% ��

tcom_corrector = 8 · tstartup + 738 · t���.

4.6. ALGORITMO PARALELO PARA LA FORMA NO ESTACIONARIA 9?<

��������% �� � ���� ����� � ����� ��� �� ���� n ����� ���� ��

tcom_total = (8 · tstartup + 268 · t���) + n · (tcom_predictor + tcom_corrector)

= (8 · tstartup + 268 · t���) + (23 · tstartup + 1730 · t���) ,

��� (8 · tstartup + 268 · t���) �� �� � ���� � ����� ��� �� ���� ��� �� ��� �������������� � � �����

��&� �.<241)02 3/4/.*.2 3/4/ ./ D240/ (2 *-)/+12(/41/

0� ����� ��� �������� ���� �������� �� � ����� � ����� ���� -����� ����

���� ���� &�� ����� �� ��������� ���� �� 3�,� � ���� ���� �� ����� ���#

� �% �� ���� � ���N

9� 0� ������� ������� M ����� ��� ������� � ρ G��� �H% u G����� � �� xH%

v G����� � �� yH ! p G���� ��H �������� ��� �� �������� � ���� ����

����� ���� ��

;� 0� ������� ������� M ���� ��� �������� �������� S1% S2% S3 ! S4�

>� 0� ������� ������� M ����� �� ��,��� &�� ���� ��� ��� ���������� ����� �#

���� ��� �� 3�,�% � ��� �������� S1% S2% S3 ! S4�

@� 0� ������� ������� M ����� ��� ��� .������ G�H � ��� ������ S1% S2%

S3 ! S4% � ��� ������ S1% S2% S3 ! S4% ���� &�� �� ����� ����� ��� �����

���

A� 0� ������� ������� M � � �� �� ��� ��� � ���� � � ���� �� t = 1% �� �� �%��� ������� � ��� ��� ����� � 3�,� U1% U2% U3% U4 �� ���� ��� ������ i, j

��� i = 1, ..., 1001 ! j = 1, ..., 41.

:� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� � 3�,� U1% U2% U3

! p, � ��� ������ S1% S2% ! S3M ! ��� ������� � U1% U2% U3% U4 ! p, � �� �����

S4�

Mpi,j ! U i,j

k ��� k=1,2,3, i=1,...,1101 ! j=1,...,41.−→ Sk ��� k=1,2,3.

Mpi,j ! U i,j

4 ��� k=1,2,3, i=1,...,1101 ! j=1,...,41.−→ S4

9?= CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

<� 0� ������� ������� M ������� ∆τ ��������� ���� �� � ���� t% � ������

&�� ��� ������� � ��� ��� ����� � 3�,� Fk ! Gk ��� ���������% ������� #

�������% �� �� ������� Sk, �� ���� � ��� ������� � Uk ��� ��� ��� ��

������� M, ��� k = 1, 2, 3, 4�

=� (�� �������� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ����

(∂U1

∂τ

),

(∂U2

∂τ

),

(∂U3

∂τ

)!

(∂U4

∂τ

)%

������� �������% �� � ���� ���������� ����� �������M ! ���� �� �����#

��� �� � ���� � ��� .� �� � ��� ��������� ����� ��� ����� U1% U2% U3 !

U4% �� � ���� ��� ������� � F1% F2% F3, F4, G1% G2% G3 ! G4 G���� ���������H�

B� 0� ������� ������� M ����� � ��� �������� �������� S1% S2% S3 ! S4, �� �����

� ∆τ �

M∆τ−→ Sk, ��� k = 1, 2, 3, 4.

9?� (�� �������� �������� S1% S2% S3 ! S4 �������� ��� ������� � ��� ��� �����

��� �+�� U1, U2, U3 ! U4, ������� �������% �� �� ��� � �� t% ��� �� �����

��� � � � ∆τ �

99� (�� �������� �������� S1% S2% S3 ! S4 ������ �� ������� ������� M ���

������� ��� ������� � U1, U2, U3 ! U4�

SkU

i,jk ��� k=1,2,3,4, i=1,...,1101 ! j=1,...,41.−→ M, ��� k = 1, 2, 3, 4.

9;� 0� ������� ������� M ��� �� ��� ������� � U1, U2, U3 ! U4, ! ������� ���

������� � �� ��� ���� ��� �+� p G���� ��H�

9>� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� ��� �+�� U2% U3

! p, �� ������� S1�

Mpi,j ! U

i,jk ��� k=2,3, i=1,...,1101 ! j=1,...,41.−→ S1

9@� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� ��� �+�� U1% U3

! p, �� ������� S2�

Mpi,j ! U

i,jk ��� k=1,3, i=1,...,1101, ! j=1,...,41.−→ S2

4.6. ALGORITMO PARALELO PARA LA FORMA NO ESTACIONARIA 9?B

9A� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� ��� �+�� U1% U2

! p, �� ������� S3�

Mpi,j ! U

i,jk ��� k=1,2, i=1,...,1101, ! j=1,...,41.−→ S3

9:� 0� ������� ������� M ����� ��� ������� � ��� ��� ����� ��� �+�� U1% U2%

U3 ! p, �� ������� S4�

Mpi,j ! U

i,jk ��� k=1,2,3, i=1,...,1101, ! j=1,...,41.−→ S4

9<� (�� �������� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ����

(∂U1

∂τ

),

(∂U2

∂τ

),

(∂U3

∂τ

)!

(∂U4

∂τ

)%

������� �������% �� � ���� ���������� ����� ���!�" ! ���� �� ��������

�� � ���� � ��� .� �� � ��� ��������� ����� ��� ����� U1, U2, U3 ! U4

G���� ���������H�

9=� (�� �������� S1% S2% S3 ! S4 �������� ��� �� ���� ���� ���� ����� �(∂U1

∂τ

)��

,

(∂U2

∂τ

)��

,

(∂U3

∂τ

)��

!

(∂U4

∂τ

)��

%

������� ��������

9B� (�� �������� S1% S2% S3 ! S4 �������� ������� �������% ��� ������ �������

� ��� ��� ����� � 3�,� U1% U2% U3 ! U4% ��������� ����� �� � ���� t + 1�

;?� (�� �������� S1% S2 ! S3 �,����� ��� ��� � ���� �� �� -�������% �� �#

� �% �,����� ��� ��� � ���� �� ��� ������ (1, 1)% (1, 2)% � � � % (1, 41)M (1, 1)%(2, 1)% � � � % (1101, 1)M (1, 41)% (2, 41)% � � � % (1101, 41) ! (1101, 1)% (1101, 2) % � � � %(1101, 41)% � ��� ��������� ����� ��� ����� � 3�,� U1% U2 ! U3�

;9� (�� �������� S1% S2 ! S3 ������ �� ������� S4 ��� ��������� ����� �������

� U1, U2 ! U3, � ����� �� �� -��������

SkU i,j

k ��� k=1,2,3, i=1,...,1101, ! j=1,...,41.−→ S4

99? CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

;;� 0� ������� S4 �,���� ��� ��� � ���� �� �� -������� � ��� ������� � U4,

�� ���� � ��� ������� �� �� -������� � ��� ��� ����� U1% U2 ! U3.

;>� (�� �������� S1% S2% S3 ! S4 �������� �� ��/ �� -����� � ����� ��� �������

� ��� ��� ����� Uk, ���� k = 1, 2, 3, 4, �� �� � ���� t ! �� � ���� t + 1� 0�������� � ���� �� ������� � ���� �� �� ��� � � ���������� ��

;@� (�� �������� S1% S2% S3 ! S4 ������ ��� ������� ��� ������� � U1% U2% U3 !

U4, �� ������� ������� M �

SkU i,j

k ��� k=1,2,3, i=1,...,1101, ! j=1,...,41.−→ M

;A� 0� ������� ������� M ������� ��� ������ ������� � p �� �� � ���� t + 1��� ��� ������� � U1% U2% U3 ! U4 ��� � �� � ��� �������� ���������

;:� 0� ������� ������� ���� � τ �� ����� ∆τ (τ = τ + ∆τ) � ��������� ��

������� t �� ��� (t = t + 1)�

;<� 2� ��� ��� ��� ����� �� : �� ;: +���� ������ �� �D���� ����� � ��#

��� ���� �� �� � ����� J�� ��� &�� �� ������� �� �D���� � ����� ����

������% �� ������� ������� ������� ��� ������� � ρ G��� �H% u G��#

��� � �� xH% v G����� � �� yH% �� ���� � ��� ������� � U1% U2% U3 ! U4

����� �� �� �� D�� �� ����� ���

��&��� 1/<4/0/ ,* -*+6*(+1/ B )1*032 ,* +206(1+/+18( 3/4/ ./D240/ (2 *-)/+12(/41/

(� .���� G@�:# 35H ������� �� ������ � ������� � &�� � �� �� ���� ��

! �� ���� � � �����,�� &�� �� ���� ��� �� �� ����� ��� ����� ���

4.6. ALGORITMO PARALELO PARA LA FORMA NO ESTACIONARIA 999

Esclavo 1 :

SlaveEsclavo 2 :

Slave

Esclavo 3 :

Slave

Esclavo 4 :

Slave

ConstantesConstantes

ConstantesConstantes

ID'sID's

ID'sID's

pUUU y,, 321

pUUUU y,,, 4321

pUUU y,, 321 pUUU y,, 321

����

����

1U

2U

3U

4U

pUU y, 31pUU y, 21

pUUU y,, 321

1U

1U

2U

2U

3U

3U

4U

Maestro :

Master

pUU y, 32

Figura 4.6-F35. Paso de mensajes para la forma no estacionaria

(� .���� G@�:# 36H ������� �� ������ � ����� � ��� &�� �� �� � �� ����

������� �� ������ � ������� �� � �� .���� G@�:# 35H�

99; CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

Ecuaciones delflujo no estacionario

Crear tareas esclavas

ProgramaMaestro

Obtener parámetrosiniciales de un archivo

Calcular el comportamiento delflujo supersónico en el conducto

<<usa>>

Figura 4.6-F36. Casos de uso de la forma no estacionaria

0����� � �� ������� �� ������� �� � ���� � ����� ��� �� tcom_predictor, ��

��� ����� �� ��������� ���� �� ����� �� ����� ����

�+)191,/, 1*032 4*?6*41,2

0���� � ��� ����������% ��� M � ��� �������� 4(tstartup + 49 · t���

)0���� � ��� ��� .������% ��� M � ��� �������� 4

(tstartup + 20 · t���

)0���� � ��� ������� � U1, U2, U3 ! p% ��� M � S1

@ 3(tstartup + 45141 · t���

)0���� � ��� ������� � U1, U2, U3 ! p% ��� M � S2 3

(tstartup + 45141 · t���

)0���� � ��� ������� � U1, U2, U3 ! p% ��� M � S2 3

(tstartup + 45141 · t���

)0���� � ��� ������� � U1, U2, U3 ! p% ��� M � S2 4

(tstartup + 45141 · t���

)0���� � ��� ������� � U1, U2, U3, U4 ! p% ��� M � S4 4(tstartup + 1 · t���)0���� �� ������� � U1, ��� S1 � M

(tstartup + 45141 · t���

)0���� �� ������� � U2, ��� S2 � M

(tstartup + 45141 · t���

)0���� �� ������� � U3, ��� S3 � M

(tstartup + 45141 · t���

)0���� �� ������� � U4, ��� S4 � M

(tstartup + 45141 · t���

)

0� ���������� �% �� � ���� � ����� ��� �� ��&��� � �� ��� ����� ��%

���� �� ���� ��� ���� ��

tcom_predictor = 21 · tstartup + 767401 · t���

�+��� ���������� �� � ���� � ����� ��� �� tcom_corrector% �� ��� ����� ��

��������� ���� �� ����� �� ����� ����

@���� ��� ����� �� ���� �� ���� ��� �����,�� ��� ����� � ���� � � �&���

4.6. ALGORITMO PARALELO PARA LA FORMA NO ESTACIONARIA 99>

�+)191,/, 1*032 4*?6*41,2

0���� � ��� ������� U2% U3 ! p, ��� M � S1 3(tstartup + 45141 · t���

)0���� � ��� ������� U1% U3 ! p, ��� M � S2 3

(tstartup + 45141 · t���

)0���� � ��� ������� U1% U2 ! p, ��� M � S3 3

(tstartup + 45141 · t���

)0���� � ��� ������� U1% U2% U3 ! p% ��� M � S4 4

(tstartup + 45141 · t���

)0���� � ��� ������ ������� �� �� -������� � U1,

��� S1 � S4(tstartup + [(2 · 1101) + (2 · 39)] · t���

)

0���� � ��� ������ ������� �� �� -������� � U2,

��� S2 � S4(tstartup + [(2 · 1101) + (2 · 39)] · t���

)

0���� � ��� ������ ������� �� �� -������� � U3,

��� S3 � S4(tstartup + [(2 · 1101) + (2 · 39)] · t���

)

0���� � ��� ������ ������� � U1, ��� S1 � M(tstartup + 45141 · t���

)0���� � ��� ������ ������� � U2, ��� S2 � M

(tstartup + 45141 · t���

)0���� � ��� ������ ������� � U3, ��� S3 � M

(tstartup + 45141 · t���

)0���� � ��� ������ ������� � U4, ��� S4 � M

(tstartup + 45141 · t���

)

��� �� �����% �� � ���� � ����� ��� �� ��&��� � �� ��� ����� ��% ���� ��

���� ���������% ��

tcom_corrector = 20 · tstartup + 774237 · t���. ��������% �� � ���� ����� � ����� ��� �� ���� n ����� ���� ��

tcom_total = (8 · tstartup + 276 · t���) + n · (tcom_predictor + tcom_corrector)

= (8 · tstartup + 276 · t���) + n · (41 · tstartup + 1541638 · tdata)

��� (8 · tstartup + 276 · t���) �� �� � ���� � ����� ��� �� ���� ��� �� ��� ���� � � �����

99@ CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

���� 1/<4/0/ ,* +./-*-

(� .���� G@�<# 37H ������� �� ������ � ������ &�� ���� �� ��� ��� �#

�� �� �������� ���� �������� �� � ����� � ����� ���� -����� ���� ���� ����

&�� ����� �� ��������� ���� �� 3�,� � ���� ���� ����������� ! �� .����

G@�<# 38H ������� �� ������ � ������ �� �������� ���� �������� �� � �����

� ����� ���� -����� ���� ���� ���� &�� ����� �� ��������� ���� �� 3�#

,� � ���� ���� � ������������ � �+�� ������� ��� ����� ��������� ��

������� � ��)�% ! �������� ��� � ��� � ��,���� ! ��� ����� ���� ����� ����

���� ���� ������ &�� ��� �����,�� �� � ���� ���� ����� ��� ��� ������%

����������� ��,����% �� ��� � � ��� �� � � ��� ���� ����� ��� �������% 3�#

������% ����������% ����% !� &�� ��� �� �� ��,��� �� �� �����,� ���� �� ��

��,�� ��)� �� ��������M ����� �� ��� � �� ��)� �� ����� � ��,����

�������� ������������ � &�� ��� ���������� � �� �������� ��� �� ��,�#

��� ��� �,�����% �� ��� -�� � ������ � �� .��� �� �������� &�� ���� �� ��

�����,� �� &�� �� ����� �� ��,��� &�� ���� ��� ���� ��� ������� ����������

���� ��� ��� �� 3�,�% �� ���� ����% &�� ����� �� ������ ��� �� �����,�� &��

����������� �� ����� ��������� ��� ���% � ����� �� ����� �� �����,� &��

���������� �� ������� ��� ��� ������� ����������� (� ����-�� � �� JPVM �� � �#

�� ������� ���� ��� �� ��,����% ��� �� &�� �� �� .��% �� � ���� �� ����� ���

� ����������� � JAVA% ���� ���� �+� ��������

(� ����� � ��)� �� �������� ���� ���� ������ ���� �� ����� ���#

������� �� �� ��������� �� � �� ��� ��� ��� 2 � �������% ���� ����������

�+� ����� �� ��&� ��� �� ��� � ����� � ����� ���� ���% ��� ������ �����

������ �� ��!�� �����,� &�� �� � ��� ��)� �� ��������� �� ������ �

���������� �� ��)�% �� ��! ���D� ������ � ������� � ��� ���� ��,����%

��� �� &�� �D� ����� �� ����� � ��)� �� -��������� ���� ������� � ��

��������% ���� ��� ������� �������� � ��� ������� ���� ��� � �� �������#

��� ���

4.7. DIAGRAMA DE CLASES 99A

FF

FF1()

FF2()FF3()FF4()

(from Logical View)

FG

FG1()

FG2()FG3()

FG4()FG1()FG2()

FG3()FG4()

(from Logical View)

Fluxterm

value[][] : doublex : inty : intcount : int

Fluxterm()

Fluxterm()setDim()

loadfromdisk()toArray()getRead()getName()getX()getY()

(from Logical View)

Frontier

pact()tact()roact()

(from Logical View)

Metrica

yz_ys()yz()

ys()

dndx()

(from Logical View)

Newton

raiz()

findm()dfindm()

(from Logical View)

Parcial

forward()forward()reward()

fsf()fcal()

fphi()min_wlast()min_wfirst()

min()

(from Logical View)

FluxVar

values[] : doublen : intcount : int

FluxVar()FluxVar()put()get()get()getName()

(from Logical View)

jpvmBuffer(from jpvm)

Constantes(from Logical View)

jpvmTaskId(from jpvm)

jpvmEnvironment(from jpvm)

jpvmMessage(from jpvm)

Slave

F[] : doubleG[] : double

P[] : doubleDFe[] : double

SF[] : doubleDFe_[] : doubleSF_[] : double

F_[] : doubleG_[] : double

P_[] : doubleDFeav[] : double

Fs[] : double

ABC[] : doubleX : doubleDeltae : doubleTask : intn : intnum_task : int = 4

Slave()start_pararelo()main()

(from Space)

c

masterTaskId

+tids[]

jpvm

message

Planificador(from Logical View)

Timer(from Logical View)

Master(from Logical View)

v

ro

P

T

M

G[]

buffer

c

Taskertimer

Lector(from Logical View)

lector

Primitives

FA()FB()FC()fro()

fu()fv()fp()

ft()

fm()

(from Logical View)

Figura 4.7-F37. Diagrama de clases del programa

bidimensional estacionario

99: CAPÍTULO 4. DISEÑO E IMPLEMENTACIÓN

F3D

FF1()

FF2()

FF3()

FF4()

FF1U()

FF2U()

FF3U()

FF4U()

(from Logical View)

FU

FU1()

FU2()

FU3()

FU4()

FU1()

FU2()

FU3()

FU4()

(from Logical View)

G3D

FG1()

FG2()

FG3()

FG4()

FG1U()

FG2U()

FG3U()

FG4U()

(from Logical View)

Metrica3D

Finddt()

min()

dndy()

dndx()

(from Logical View)

Parcial3D

Predictor()

Corrector()

FSF()

(from Logical View)

Primitives3D

FP()

FRO()

FU()

FV()

FT()

FM()

(from Logical View)

U3D

FU1()

FU1()

FU2()

FU3()

FU4()

(from Logical View)

Min

valor : doublexpos : int

ypos : int

Min()

toString()

(from Logical View)

Lector

(from F)

FluxVar

values[] : double

n : int

count : int

FluxVar()

FluxVar()put()

get()

get()

getName()

(from Logical View)

Constantes

(from Logical View)

Constantes3D

Cx : double

x[] : double

deltae[] : double

t : int

m : int

Constantes3D()

crearX()

Loaddeltae()

toString()

(from Logical View)

Timer(from Logical View)

Master3D

num_task : int = 4

Deltat : double

Master3D()

start_paralelo()

inicializar()

send_data()

send_deltat()

recv_predichas()

calcular_p_predicha()

send_predichas()

recv_nuevas()

main()

(from Logical View)

DeltatPos

c

timer

lector

Planificador(from Logical View)

Tasker

Slave3D

Task : int

n : int

num_task : int = 4

Deltat : double

Slave3D()

start_pararelo()

main()

(from Logical View)

c

timer

SlaveTasker

Figura 4.7-F38. Diagrama de clases del programa

bidimensional no estacionario

/3>)6.2 �

������� ������ ��

0� ���� �������� �� ���� �� �� ���.����� �� �� ������� � �� JPVM ! ��

�������� ��� ��������� � �� ��� � ���� �� �� -���� ��� �� ! ��������

��� JVM� 2� �������� ��� � ����� � �,���� �� ����� �� � ������ ��� ��� ��#

� ���� �� -������� �����-����� ! .�������� �� �/����� ��� ��������� � ��

� ����� �� �� ���.��� � ���� ������ � ���������

���� 2(7<64/+18( ,*. *()24(2 ,* ./ ����

���� ������ � ���� �� �������� �� �������� �� � ���� �� JPVM% �� ��&� ���

� � �� �� �������� ���� �� jpvmDaemon �� ��� ����� ���� � �����,� ��� ��

������� �,������ �� ��� ��� ��� 0� �������� jpvmDaemon �� ����� �� ��&����

� �� JPVM ! �� �� �������� �� �� ���������� daemonA� (� ��� ���� � ��� ����

CLASSPATH ��� �������� �� ���� � ��� ������ � �� JPVM ! ��� ����� � ���

������ � ��� ��� ��� ���� �� ��� ��� � ��� ����� ���� � �����,�� (� JPVM

���� ��� ������� ������ � �� �� ��&���� jpvm�

J� �,����� �� ����� � �� ��� ���� CLASSPATH ��,� Linux �� ���� ��� ��

�� .���� GA�9# 39H�

A�������� &�� ������� ��� �� ���� � � ! �� �,����� �� ����� ������� ��

99<

99= CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.1-F39. Variable CLASSPATH

(� ���� /home/ccouder/javapvm �� �� ������ � � �� JPVM% ��� ����� /ho-

me/ccouder/2D ! /home/ccouder/3D ��� ��� ������ �� � ��� ���������

���� �� -���� ����� ���� � ! �� ����� ���� � ������� ��������

���� �������� �� daemon �� ������ java jpvm.jpvmDaemon ���� �� �������

�� �� � �� ���� .���� GA�9# 40H�

Figura 5.1-F40. Daemon de la JPVM

! �������� �� ������ � ����� ��� �� ! �� � ����� ������ �� ��� ��� ��

0� ��� ��� �������� -������� ������ �� �� daemon jpvmDaemon �� �� � �#

�� ����� �� � �����,� !� &�� ���� �� &�� ��� daemon ������ ! �� +��� �����

� -������� ������% -�� � ���� �� ������ ��% ���� ����������� �� �� ���� �#

��� ��� �� �� PVM �������� 2 �� ���� daemon �� +��� ����� � ������ �� n

������ ����� ���� � ��� ��� ��������� �� -���� �� ����� ���� �� �� �� � ���

���� ���% .������� �� ������ �� � ���������� �� ������� � �� .��� ��

�� �� -����� � �� JPVM ���� &�� ��� ������ ���������� ��� �� daemon �� #

���� ������ �� ��� � �������% �� �� � �� ��� � ��� �������� ��� �� .��� �

� ����� �����,�� � ��/��� (� JPVM �� �� �� ���������� �� ��������� � �

�� ����� � ��� ������ ! ��� ��� ��!� � ������ ��������� �� ��� daemons

&�� ���� � ��� �� �� �,���� �� ! �� �� ��� ����� ���� � �����,� -�� ����

5.1. CONFIGURACIÓN DEL ENTORNO DE LA JPVM 99B

���� � � �� �� ������� �������� �� ��� �,������ �� daemon �� ��� �� ����

����� ���� � �����,� &�� ���-������� �� ��&� �� ��������� (� ��� ��� �� &��

�� �,������� �� �������� ��� ������� �� ������ � ��� ����� ���� ! �� ������ �

��� daemons% �� ��� ��� ����� .������ ���������� �� �� �� �� � �� ��� ��� ��

� � ������ � �� ������� � �� JPVM� 2 �� �������� �� �,����� �� ��� � ����

����� ���� � �����,� ! �� �� ������� ������������� � �����% �� ������ ����

&�� ����� �� �������� �� ����� .&���M �� ���� ������� � �� ��,�� +������

��� �� � � �� ������� GjpvmConsoleH ��� �� ������ add% �� ���� ��� � ��

�� ������ � ���� �� IP � �� ����� �� � �����,� ! �� �D���� � �������

����&� �� ����� �� � �����,� �������� &�� ������� TCP ! JAVA ���� ���

���� ��

(� ����� �� � �����,� ��� �� �,����� �� ������� ����� ����� ���� ��� ��

����� �� daemon% � �/ ���� ���% ��� � ��� daemons ���� ���� ���� ����

������� ! ���� �� ���� ��� �)� � � ������ �� ������ add�

���� �,���� .��� �� � ���� �� ����� ���� � �����,� �� ���������% ���

��� Windows ;??? ! ���� ��� Linux� 2������ &�� �� ��&� ���� ���� daemons

���&�� �� ������� �,������ ��� ��� ��� �� &�� �� ������� � ���� ������ !

�� ��&� ��� ��� �� ��� � �� ��� ������� ��� ��������� �� -���� ������� ��� 2�

� � ���� �� daemons �� �� ��&� �� Linux ! ���� �� �� ��&� �� Windows%

��� �� &�� �/ �� ��� ���� ����������� ��� ��� ! �� ����������� -�� ���� (�

��&� �� Linux ���� �� �� �� ��� ��� � � ��� �� �,���� �� � �� ��� ��� ���

0� �� ��� ���� �� �������� �� daemons �� �� ��&� �� Linux ���� ��

������ ����� �������% ��� �� � �� ������ java jpvm.jpvmDaemon% ���

daemon ���� �� ������% �� ���������� � �� ���� ���� �� ��������� ��� �������

>;%=>> ! >;%=@?� 0� �� ��&� �� Windows �� ���� �� �� � ��� ����� � ���� !

�� ������ �� ������ @9;<� 0� �D���� � ������ �� �� ��� ������� ������ �����

�� ����� ��!�� � 9?;@ ! ����� �� �D���� � ������ ���� � � ��� �� � �����

������ ���

0� �� .���� GA�9# 41H �� �������� ��� daemons ( ��/ ! �� daemon E ��4�

�,����������

9;? CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.1-F41. Daemons de la JPVM bajo Linux y Windows

(� � �� ���� �� � � �� �� ������� ��� �� � �� ������ java jpvm.jpvm

Console% �� ������� ������� �� � ���� S>T ���� ��� � � �������� 0� �����#

� ps ������� ��� �������� ! ��� ������� � ��� ����� ���� � �����,� ���

�� ������ � ����% ���,��������� �� �,������ ps �� daemon ������� ��� � ��

�� �������� S���� � �������T -�� � ���� �� ��� .��� �� ! �� �D���� � ��#

��� ���� &�� ���������� 0� ������ conf������� �� ������ � ��� ����� ����

� �����,� &�� ���� � ���� ���� ��)���� &�� -�� ������� � �� .��� �� �� ��

� �� JPVM ���� ��� .��� �� daemon �������% !� &�� �� JPVM �� �� �� ��

�� � ��� �� �� ����������

0� �� .���� GA�9# 42H �� ������� �� ������� � �� JPVM �)� ��� ��� dae-

mons ������ �� �� .���� GA�9# 41H� ���� ���� �,����� �� daemon ������� ��

�� &�� �� �,����� ����� Linux (dydy) �� �� ������ >;=>> ! ��� �-���� �� ��

�� ��� ���� �� � ����� �������� �+��� -���� ������� �� daemon ����� Linux

(dydy) ��� �� ������ >;=@?% ���� �)� ��� �� ������ add% ! ����� ���� �� ��

���� �� �� ������ � �� ����� �� � �����,� ! �� �D���� �� ������� ��������

��������� �� ����� �� � �����,� Windows �� � ���� ���������� �� ������

add ��� ��� ��� ���� andromeda ! @9;<�

(� .���� GA�9# 43H ������� �� ������� � �� JPVM �,������� �� ������ ps

������ � ������ �� �� �������� mat_mult ��� ����� ������ ��� �� � ��

������ java mat_mult 9 200�

5.1. CONFIGURACIÓN DEL ENTORNO DE LA JPVM 9;9

Figura 5.1-F42. Consola de la JPVM

Figura 5.1-F43. Procesos en la JPVM

9;; CAPÍTULO 5. PRUEBAS Y RESULTADOS

2� ������� &�� �� JPVM �� ��� ���� ������ ��� daemon �� �� � � ��� �����#

���� ��� ��% �� ���������� � �� ��&� �� Linux GdydyH ����� � ���� �� � ������

�� ����� �� daemons ! �� ��&� �� E ��4� GandromedaH ���� �� ���� �������

(� ����� ������� ���� (command line jpvm task) �� �� ����� �������

&�� � � � �� �,���� �� ! ��� ������ �������� ���� mat_mult ��� ��� ������

��������� (� ��� ��� �� mat_mult ���� �� �� �� ���� ��� �� �������� ! �� ��

�,����� ������ � �� �� ��� ��� �� � �� JPVM�

���� *-*03*A2 ,* ./ ����

���� ���� ������ &�� �� ��� � �� ���������� JAVA% ���������� ��� SUN

Microsystems% �� �� ������ ���� ��� ��� ���� ����� ��� �� �������% �#

� � � &�� �� � �� ��� ���� ������ �% &�� �� �� ��&� �� � ����� � JAVA

GJVMH% �� ���� ����� �-����� �� ����� ��� � ���� � �� ������� ��� �� ���#

����� ��� �� � ������.�� ���� ������ �����-����� 2 � �������% �� ��� � ���

��&� �� � ����� ������� �� ����������� � � � ��������� � -������� ���#

��-������ ������ +����� ����� ��� ������,�� ������.��� ���� ��������� �

��� ��� ���� � ����.��� ! � ��������% ���� MATLAB% �� � ��� ��&� ��� ����#

�� �� ���� ��� -�� � ������ �� ! ����������� � � �� �� �� � �� ����

�����-������

0� ������,� JAVA% ���&�� ����� � �� �� ������ �� �� ������,� C++% �-����

��� �������� �� �� ��� �� ��� �� ������,� ��� ������ �� �� ������ ��%

�� � ���� ! �)� ��� ����������� ��� &�� ���� ��� �������� �� ��������

��� � ���� ! ���� ���% ��� �� ������ �� � &�� ��� ����� �������� � �������%

��� �� &�� � ����� � ��� � � � ���� &�� �/ ���� �� �� � ���/ � ����� JAVA !

C++% ��� ����� ������ �� �� ������,� � ��)� K9=L� ���� ��,���� �� ��� #

� ���� � �� �������� �� ������,� JAVA% ! �&� ������� ��� �� ����� � �

��� ��������� �������� �� C++% �� +�� ������� ���� ������ �� � ���� �

�,���� �� � �� ��&� �� � �����% ! ���� �� �� +�� ������� � ���� ������

&�� ������� �� �� ��� �� ���� ��� �����-���� ������.��� 0/ ���� ���� ��#

���� ������ ���� ���� JOVE � Visual Age ���� Windows% � ����� ��� ����

gcj ���� ��� ����� UNIX � Windows� ���� ����� ��� ��,�� �������� �� �

��� ��� ���� � ��� � ����% �� ���� �� �� JPVM �� � ���� gcj ���� Linux !

5.2. DESEMPEÑO DE LA JPVM 9;>

���� Windows� ���� ���� ���� &�� ���� ��� � ������ ��� �� �� JPVM% -��

����� ������� ��� -�� � ��,� Linux% &�� ��,� Windows% �� � � &�� Linux

� ��� �� ������� � + ��� posix% � ������ &�� Windows ��� �� ����� � + ���

win32% ��� �� &�� ���� ��� � ������ ��� �� �� �������� �� ������,� JAVA%

�� � ���� �� ���� ���� ����� ��% ���� ��� ���� �� ����� ��� � ������

���� ���% ���� ���� ��� �� ������� � ���� �� ��&� �� � ������

2� ���� �� � ������ ��� �� �� JPVM �� � ���� gcj � MinGW ���� Windows%

! ���������� �� ����� � � ����� �� ! ����� ��� �� � ������ ��� �� JPVM

�� � ���� �� JVM� (� ����� �� ! ����� ��� �� �� ����� �� � ��� ��&� ��% ���

�� ��������� I:#; G>??'+�H ! ��� Windows NT 4.0 SP 6� (� ����� GA�;#$1H

������� �� ����� � ��&��� � ! �� � ���� � ����� �� � 9% ;% @% = ! 9: ������%

����� �� � ��� ��&� ���

Memoria utilizadaFísica / Virtual / Hilos

Tiempo de creación de tareas

NativojpvmDaemon.exe

3060K / 1352K / 3

creación de 1 tarea: 2234.0 msecs

creación de 2 tareas: 4105.0 msecs.

creación de 4 tareas: 7972.0 msecs.

creación de 8 tareas: 16183.0 msec s.

creación de 16 tareas: 33998.0 msecs.

Usando la JVMjava jpvmDaemon

6020K / 8920K / 9

creación de 1 tarea: 2233.0 msecs.

creación de 2 tareas: 3986.0 msecs.

creación de 4 tareas: 7992.0 msecs.

creación de 8 tareas: 16363.0 msecs.

creación de 16 tareas: 34079.0 msecs.

Tabla 5.2-T1. Memoria requerida y tiempo de creación de tareas

0� �� ����� ����� �� �� ������� &�� �� � ���� � ����� �� � �� ���� �

������� �� � ������% �� ����� ������� �� � ��� �� ����� ���� ��� ����% !�

&�� ��� ������ � � �� JVM ���������� ��� �����% ! ��� ������ � � ��

JVM ���� �� � ��� � ���� �� ��������% ����� ��������� ��� ��� ���

�������

(� ����� GA�;#$2H ������� �� � ���� � ����� ��� �� ��&��� � ����� ��

������ &�� �� �,������ �� �� � ��� ��&� �� � +���� (�� �� &����� pack% comm%

unpk �� ��.���� �� � ���� � ����&����� ����% ����� ��� �� ! ������&��

�� �����,�% ������� ��������

9;@ CAPÍTULO 5. PRUEBAS Y RESULTADOS

Tiempo decomunicación

4 bytes

Tiempo decomunicación

1024 bytes

Tiempo decomunicación

10240 bytes

Tiempo decomunicación102400 bytes

Tiempo decomunicación1048576 bytes

NativojpvmDaemon.exe

pack:0.625msecs.comm:36.3125msecs.unpk :0.0msecs.

pack:0.0390625msecs.comm:25.39453125msecs.

unpk:0.625msecs.

pack:0.00244140625msecs.comm:32.274658203125msecs.

unpk:0.0390625msecs.

pack:8.750152587890625msecs.comm:154.7671661376953msecs.unpk:1.25244140625msecs.

pack:41.859384536743164msecs.

comm:1255.672947883606msecs.unpk:21.453277587890625msecs.

Usando la JVMjava

jpvmDaemon

pack:0.0msecs.comm: 33.1875msecs.

unpk:0.625msecs.

pack:0.0msecs.comm:25.88671875msecs.unpk:0.0390625msecs.

pack:0.0msecs.comm:30.992919921875msecs.unpk:0.00244140625msecs.

pack:6.875msecs.comm:155.9370574951172msecs.unpk:3.750152587890625msecs.

pack:44.1796875msecs.comm:1281.7460660934448msecs.unpk:21.484384536743164msecs.

Tabla 5.2-T2. Tiempo de comunicación entre dos tareas en el mismo host

0� �� ����� ��������� �� ������� &�� �� �/ ��� -����� � � �� .��� �� �����

��� � ����� � ����� ��� �� �� ���� �� ���� ��� �� ��� �� � �� �������� ���

�� JVM� ���� ����� ���� &�� �� D� �� �����,� � ���� ��� � ������ ��� ��

�� JPVM �� �� �+���� � �� .��� �� � ����� �% ! ���� �� ���� ������� �� ��#

��.� � ��� ���� ���� �� ���� ��� � ������ ��� �� ��������� �� ������,�

JAVA �� � ���� gcj� 0� �+���� �� �� � �� .��� �� �� �� � ���� � �,���� ��% !�

&�� ���� ����� �� � �� � ������ ���� &�� �� �������� ���� ��% �� ���#

�� ������ ���� ��/ �� ����� >?O ! @?O � �����,�� 0� ��������� &�� ���

����� ��� �� ��������% �� +� �������� &�� �� ��� � gcj ������ �� �+����

��/ �� �� @?O � ����� � ! �� ������� ��/ �� �� ;?O �� �� ����� ��

2 � �������% ����� ���� ���� �� ��� �� ��� ��% �� ������ �� ������ � ��#

���� ! �� ���� + ��� ��� -�� ��� � ���� ���% ! �� ��� � ��&����� ���� AWT

! Swing � � &� ��� �� ����� �� � ���� ���� ������ ��� ��� ���� JOVE ���#

���� ��������� ��� ��� �� ������,� JAVA &�� ����� �� � ��� ��� �� core

package ! ����� APIF�% ���� �� ������� ��������� ��� ��,���� � �� .��� ���

�� �� ��� � �����

5.3. TIEMPOS DE EJECUCIÓN 9;A

���� 1*032- ,* *;*+6+18(

0� ��� �� ����� � 9?'��� �������� ��� ����� ���/ ��% �� � ���� � ��#

��� ��� �� GcommH ��&��� � ��� �� JPVM ���� ��� �� +���� ;A%:?? �������

G� @ � 9?;@?? �!���H ����� �� ������ �,��������� �� -������� �������#

����% �� ����/ �������� � A???��� 0� ��� �� � 9??'��� ���� � ����

�� ����� �� �� B?O ! ��� ����� ����/ �������� A??��% �� ��� �� �

9???'��� �� � ���� ��� ��� �� � A?��� 2 �� ������ �� �,������ �� �� � �#

�� ��&� �� �� � ���� ��&��� � �� � ����/ �������� >��% ����� �����

�� -����� � ����� � ����/ �������� 9:�: ����� ��!�� �� �������� ��

��� �� ������ ����� ���� ��� ��� �� � 9???'����

(�� � ������ �������� � SMP ��� ������ ����� ���� � ����&� �� �� �

���� ����� � ���� ����� ��� ��� �����������% � � ������� �+�� � ������

��� ����� ��������� ��� ������� �� ���,���� � ����� ���� � �����,�� (�

������� �� � ����� ���� � �����,� ��� �� ��,��� � �������� ������ ���� #

��� � ������ ���� �� ���� ���% ���� ��� ��� ���� � ����.��� �� ��� ������

���� ������� �� ���� ���������� 0/ ���� ����� ���� .��� ���� � �������� ����

��� � ���� ������������� &�� � ���� ���� ����� �� ��� �� �������� � �����

-��� ����� �� ���� � � �� ���� ����� ���� � ���� ��� �� ���� ���� ���

��� ���� � ���� � �� ���� �� WEB�

0� �� ��� �� � ��� �������� � ���� ��� � ���� �� ������.�� �� ��-�4��� &��

��� ������ ��� ������� ���� �����% �� ��������� � �������� �� �� ������#

)� �� ���� �� �� ���� � � ������ SMP� (� �������,� �� �� ��� � ��� � ������

������ �� ������� �� �� �� &�� �� ���� ��� �� ��������� �� �������� ��� ��#

��������� ������� �� ! &�� ���� ��� ���� ����� ��� ���� ��� �/���� ��� ����

�� ���� � �����,��� $��� �� �� ��� ��� �� � ��� ���� ��� ����� ��� � ������#

��� �� �������� �� �������� ���� ����� � � ���� � &�� ��� ������ ���� ���

�������� ! �� �� ����� �� � ��� ����������� ������� �� ���� ����-���� �

��� �����% ���� �� ��� ��� �� � ��� �&������ ����������� ������ �� �� ����,�

� ���+ ��� ! ��)���� ����� .���� �� �� IPC � UNIX% �� �,����� � ��-�4���

&�� � ���� ������� �� MOSIX G444���� /����H� (�� ����������� ��� ��� �����#

��� ����� � �� � ����� SMP �� &�� ������� ����&� �� � �� � ��������� ��

�������� ��� � � �� ����� �� � �/���� ��% ������� ����������� ������� �� !

����� �� ������� ��� �� ���� ������ � ���� � � ��� � + ��� � �,���� ���

9;: CAPÍTULO 5. PRUEBAS Y RESULTADOS

(� ��������� �� �������� ����� �� ��� ����������� ������� �� ����� ��

+ ��� � �������� � �����% +� ������� ����� ����,�� ������)� �� �� ����� �

��� �������� � �� ��������� �� �/���� ��% � � ������� �� ���� ���� �.� � �

��������� K;=L% �� �,����� � ���� � �� � ��������� �� ��� ��,���� JAVA ��

���� ��� �� �� ���� �� �� (�� ����� ���� �/���� ��� ��� ��� -�� � � �� � ���

! ������ ��� �� &�� �� ���+�� ��� ��� ���� ����� ��� �� ������� �� ���.���

�� ��� � MPI K>% ;9L� � ���� ���� �� �� ������� �� �� .���� GA�># 44H � 2J�

(��� G444������������H �� ������, � � ��������� ��� + ��� ! �����������

������� ���

programadores expertosprincipiantes

programación�enVisual�Basic

programación�en�C

programación�en�C++

programación�con�hilos

programación�con�MPI

Figura 5.3-F44. Complejidad de programación con hilos de ejecución

0� ����.� � � ������� � ��������� ������ �� �� ���� � �����,�� �����#

���� ��� �� JPVM% �� &�� ��� ��������� ���������� ! ��������������% �� ��#

��� �,������ �� ��� ���� ��� �� � ��&� �������� GSMP% ���� �����������%

� ������ � /���H% � � ����� &�� ������ ��� � �� .��� ��� ���� ����� � �� ���

� ���� ���� �� �� �������� ��� � ����� � �,���� �� ! ��� ���� ��� ����� �#

���� �� ������)� �������� ��� ���������� ����� �� ���� �����-������ 2�

������� ��� �����-����� &�� �� �� � ����� ��� �� � �� � ��������� ! ����� �%

���� -�� � ��� �� �������� �� ! �������� � -���� ����� ��� ������� ���� ���

�� ������)�� (�� ��� ��� ���� �� �,�������� �� ��� �/���� ���

(�� ��&� ��� �� � ���� ��������� ��� Windows ;???% ��� ��� � �� �����N

���� �� 7 ;�@"+� �� ���������

���� �� 7 6��� ;�@"+� � ��������� GSMPH

5.3. TIEMPOS DE EJECUCIÓN 9;<

���� �� 7 ;�@"+� � ��������� G�������19??'���H

(�� ��&� ��� �� � ���� ��������� ��� � ������ ������ ��� ��� ����� �

UNIX ��� ��� � �� �����N

0� ������� ��#9: �������� ��� 9: ����� ���� � �����,� ( ��/ ! �����#

������ Intel Pentium III � AA?'+� ��� ����� � � ��������/ ��

� 9???'��� �� ��� �� �� ��������� � � �������� �� ��� �� � ! ��#

������ �� ��#���

2��� �� 2J� 0������ �� @A? ��� ������ ����������� C2� � @A?'+� �

����� � GSMPH

0���� �� � $����,� 2J� ���� �� ����������

(�� ���������� � � ���� ���� �� ��� ��� �� � �� -���� ����� ���� � �� ��#

�������� �� �� ���+ �� � ��/�� paraminit.dat% ! ���� ����� ��� �� �� �

��������� ��� ��� ������� ���� ��� �� �� �� � � �� �D���� 3������ &��

���������� �������� ������� � ��� ������� � ��� � �� ����� ��� �����N ��#

��� � �� x% ����� � �� y% ��� �% ���� ��% ����������� ! �� �D���� �

'��+�

(� ��� ��� �� ���� �� -���� ����� ���� � ������ ��� ���+ ��� u.dat% v.dat%

ro.dat ! p.dat% &�� ���� ���� ��� ������� �� -���� � ���� �% �� ���� ���� �

���� �� 41×1001% &�� ����������� � �� ����� �� � ���� ���� ����� ���� �� ��� ������� ����� � �� x% ����� � �� y% ��� � ! ���� �� ������� ��#

������ 0� ���+ �� deltae.dat ���� ��� ��� ���������� ∆ξ ����� ξ &�� ��

��������� ��� �� �� ��� � � (% ���� �� ���� �� 3�,� �� ����� ���� �� (�� ���+ #

��� �������� ���� �� ����� �� ����� ���� � ��� ��� ���������� � � ���� ����

�� -���� �� ����� ���� ��

���� �,������ �� �������� � ���� ���� ����� ���� � �� ��� ����� ���.��#

��� �� JPVM ! �� ���������� � �� �����-���� ��� �� �,������� �� ��������

���� �� ���� � � �� �� ���� �� GA�9H� ���� � � �� �� �,���� �� �� ������ java

Master% ! �� �������� ��&��� �� ���� ������ �� ����� ��� �� ����� x � ���

�� ���� ������� ���� ���� �,����� �� ���� �� �� ����� �� � >== � ��� �� &��

�� ������ �+� ����� G��� �� .���� GA�># 45HH�

9;= CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.3-F45. Proceso maestro

0� �� .���� GA�># 46H �� �������� ��� ������ �������� �������� ������ ���

�� ������� ������� � �� .���� GA�># 45H �,��������� �� �� � ��� ����� ��

�����,� �� -������� daemons�

Figura 5.3-F46. Procesos esclavos

5.3. TIEMPOS DE EJECUCIÓN 9;B

���� ���� �������� �� ���� ��� &�� �� ����� ��� �� �� �� ;?O% ���D�

"����-��� �� ��/ �� ������ &�� �� ���� ������� ���� ��% ���� ! ������

����������� �� � ��� � ���� ���� ���

����������� '�/ �� 2�����

; 2 + (1 − 2)(0.2) = 1. 8> 3 + (1 − 3)(0.2) = 2. 6@ 4 + (1 − 4)(0.2) = 3. 4

0����� � �� ������� �� ����� � ��� ������� ��� ���������� ���� ��� ��

� ���� � �,���� �� �� �������� � ���� ���� ����� ���� � ����� ��� �����#

-����� ���� ����� ��������� ��� Intel� (�� ������� �� ����� ��� �� ��

� �� ���� ����� GA�>#$3H�

Máquina Tiempo Speedup Eficiencia Costo

Preciodel

equipo(aproximado)

Pentium IVa 2.4Ghz 25,360 ms 1.0 100% 1 1,000 USD

DualPentium IV

Xeon2.4Ghz

14,680 ms 1.73 86% 1.16 4,500 USD

2 xPentium IVa 2.4 Ghzconectadospor unared de100Mbps

17,243 ms 1.47 73% 1.36 2,000 USD

5.3-T3. Tiempos de ejecución del programa para el flujo bidimensional

estacionario sobre la plataforma Windows

(� ����� GA�>#$4H ������� ��� ������� ���� ��� �� � ���� � �,���� �� ��

�������� � ���� ���� ����� ���� � ����� �� �����-���� ��#9: �� � ���� 9%

;% > ! @ ������������

Tiempo Speedup Eficiencia Costo

CIC-161 Procesador 199,015 ms 1.0 100% 1

CIC-162 Procesadores 140,405 ms 1.42 71% 1.41

CIC-163 Procesadores 100,105 ms 1.99 66% 1.51

CIC-164 Procesadores 140,660 ms 1.41 35% 2.83

Máquina

5.3-T4. Tiempos de ejecución del programa para el flujo bidimensional

estacionario sobre la CIC-16

9>? CAPÍTULO 5. PRUEBAS Y RESULTADOS

(� ����� GA�>#$5H ������� ��� ������� ���� ��� �� � ���� � �,���� �� ��

�������� � ���� ���� ����� ���� � ����� �� �����-���� SUN Sparc �� � ���#

� 9 ! @ ����������� ��,� Solaris�

Máquina Tiempo Speedup Eficiencia Costo

SUN Sparc1 Procesador 163,502 ms 1.0 100% 1

Sun Enterprise4 Procesadores 74,238 ms 2.20 55% 1.82

5.3-T5. Tiempos de ejecución del programa para el flujo bidimensional

estacionario sobre SUN

���� � � �� �� �,���� �� �� �������� � ���� ���� �� ����� ���� � �� ��#

���� java Master3D% � � �������� �� �������� ����� �� �� ����� ������ ������

�������� &�� �� ����� �,������ �� ��������� 0� �������� ��� � �� �� �D���� �

����� ���� ����� �� � ����% �� ���� ���� �� ��������� >??� ���� �� ���� ���

�� �� ���� �� G@�>H% �� �� ��� � ���� &�� �� �������� ������ ��� �������� �����

�� � ���� �� ���� ������� � ������ � ��� -��� �� &�� � &�� �� -����� �

��/ �� ����� ��� ������� �� � ���� ������ ! �� ����� �� � ��� �� � � ��

�D���� .,� � ����� ���� ! �������� ���� �� �������� �� �� � ����� 2 ��

������� � �� ������ � �,������ ���������� �� �������� ��� �� ��!�� �D����

� ����� ���� ���� ������� �� ���� � �� ������ 0� �������� �� �� ��� ��

����� � ��� �� �D���� � ����� ���� ��� � ���� ! ��� ������ ��������% ����#

���� �� -����� � ��/ �� ��������� ����� ��� ������� � �� ����� �� ������ !

�� ����� �� ��� �� ��������� �� �D���� � ����� ��&��� �� ���� &�� ��

3�,� �� ���� ��� �������% �� �� � � � ���� � �� ��� ���� ���� �� �� � �����

J�� ��� &�� �� �������� .��� �� �� �,���� �� ���� �� �� ��� �� ����� � ���

��� ����� ρ% u% v% p% T ! M �� ��� ���+ ��� ron.dat% un.dat% vn.dat% pn.dat%

Tn.dat ! Mn.dat ������� ��������

���� ���� �������� �� ���� ��� &�� �� ����� ��� �� �� �� 9?O% �� ���#

������� � �� ��/ �� ������ ���� ��% ���� ! ������ ����������� �� � ��� �

���� ���� ���

5.3. TIEMPOS DE EJECUCIÓN 9>9

����������� '�/ �� 2�����

; 2 + (1 − 2)(0.1) = 1. 9> 3 + (1 − 3)(0.1) = 2. 8@ 4 + (1 − 4)(0.1) = 3. 7

(�� ������� ���� ��� �� � ���� � �,���� �� ���� �� �����-���� Intel ��

�������� �� �� ����� GA�>#$6H�

Máquina Tiempo Speedup Eficiencia Costo

Pentium IVa 2.4Ghz

494,437 ms(8.24 min)

1.0 100% 1

DualPentium IV

Xeon2.4Ghz

271,668 ms(4.53 min)

1.82 91% 1.10

2 xPentium IVa 2.4 Ghzconectadospor unared de100Mbps

305,208 ms(5.10 min)

1.62 81% 1.23

5.3-T6. Tiempos de ejecución del programa para el flujo bidimensional

no estacionario sobre la plataforma Windows

(�� ������� ���� ��� �� � ���� � �,���� �� ����� �� ��#9: �� ��������

�� �� ����� GA�>#$7H�

Tiempo Speedup Eficiencia Costo

CIC-161 Procesador

1,460,347 ms(24.34 min)

1.0 100% 1

CIC-162 Procesadores

815,836 ms(13.60 min)

1.79 90% 1.12

CIC-163 Procesadores

570,448 ms(9.51 min)

2.56 85% 1.17

CIC-164 Procesadores

449,513 ms(7.49 min)

3.25 81% 1.23

Máquina

5.3-T7. Tiempos de ejecución del programa para el flujo bidimensional

no estacionario sobre la CIC-16

(�� ������� ���� ��� �� � ���� � �,���� �� ����� SUN �� �������� �� ��

����� GA�>#$8H�

9>; CAPÍTULO 5. PRUEBAS Y RESULTADOS

Máquina Tiempo Speedup Eficiencia Costo

SUN Sparc1 Procesador

1,197,005 ms(19.95 min)

1.0 100% 1

Sun Enterprise4 Procesadores

352,498 ms(5.88 min)

3.40 85% 1.18

5.3-T8. Tiempos de ejecución del programa para el flujo bidimensional

estacionario sobre SUN

� ���� ���� �� �� �������� ��� ���.��� � � ����� � �,���� �� ! ������

�� �������� � ���� ���� ����� ���� � �� ��� ��&� ��� �� � ����% �� ���

.����� GA�># 47H ! GA�># 48H ������� ��������

Tiempo (ms)

0

20,000

40,000

60,000

80,000

100,000

120,000

140,000

160,000

180,000

200,000

220,000

Pentium

IV

2.4

Ghz

DualP

entium

IV

Xeon

(SM

P)

2.4

Ghz

2P

rocesadore

sP

entium

IV2.4

Ghz

Conecta

dos

por

una

red

de

100

Mbps

CIC

-16

1P

rocesador

CIC

-16

2P

rocesadore

s

CIC

-16

3P

rocesadore

s

CIC

-16

4P

rocesadore

s

SU

NS

parc

1P

rocesador

SU

NE

nte

rprise

4P

rocesadore

s

5.3-F47. Tiempos de ejecución del programa estacionario

Speedup

00.20.40.60.8

11.21.41.61.8

22.22.42.62.8

33.23.4

DualPentium IVXeon (SMP)

2.4Ghz

2 ProcesadoresPentium IV2.4 Ghz

conectados poruna red de100Mbps

CIC-162 Procesadores

CIC-163 Procesadores

CIC-164 Procesadores

SUN Enterprise4 Procesadores

Máximo speedup (2 procesadores)

Máximo speedup (3 procesadores)

Máximo speedup (4 procesadores)

5.3-F48. Speedup’s del programa estacionario

5.3. TIEMPOS DE EJECUCIÓN 9>>

Tiempo (ms)

0100,000200,000300,000400,000500,000600,000700,000800,000900,000

1,000,0001,100,0001,200,0001,300,0001,400,0001,500,0001,600,000

Pen

tium

IV2.

4G

hz

Dua

lP

entiu

mIV

Xeo

n(S

MP

)2.

4G

hz

2P

roce

sado

res

Pen

tium

IV2.

4G

hzC

onec

tado

spo

run

are

dde

100

Mbp

s

CIC

-16

1P

roce

sado

r

CIC

-16

2P

roce

sado

res

CIC

-16

3P

roce

sado

res

CIC

-16

4P

roce

sado

res

SU

NS

parc

1P

roce

sado

r

SU

NE

nter

pris

e4

Pro

cesa

dore

s

5.3-F49. Tiempos de ejecución del programa no estacionario

Speedup

0

0.5

1

1.5

2

2.5

3

3.5

SUNEnterprise

4 Procesadores

Dual Pentium IVXeon (SMP)

2 Ghz

2 ProcesadoresPentium IV2.4 Ghz

Conectados poruna red de100 Mbps

CIC-162 Procesadores

CIC-163 Procesadores

CIC-164 Procesadores

Máximo speedup (4 procesadores)

Máximo speedup (3 procesadores)

Máximo speedup (2 procesadores)

5.3-F50. Speedup’s del programa no estacionario

(�� ��������� �������� �� .���� GA�># 48H ������ &�� �� �� ��� ��� ��

��������� � �� .��� �� �� ���� ��� � �� �����������% �� � � &�� ��� ���#

����� ���� ���� �� ��� ��� ������ ���� ��/ � ��� �� ����� �� ��� �� � ����

� ����� ��� ��� 0� ���� ���� �� �� �� ��,�� ������)� �� ��� � ������ �

�������� ���� � ���� �� GSMPH �� � � &�� �� ����� ������� �� ����� ��� ��

����� ������ �� ���� � �� � ��&� ��������� �� �������� ��� ������� �� ������

�������� �� �� .���� GA�># 50H �������� ��� ��,�� ����� �� ����� �� � ����

� �,���� �� ! � ����� ��� �� ��/ � ���� �� �������� �% ���� �� ��� ���

���&�� ��� ������ ������ ����� ��� ��!�� ���� � � ���� � �� ����� ��#

�+� ��� � ���� ���� ���� �������� &�� ����� ������% �������� ��� � ����

9>@ CAPÍTULO 5. PRUEBAS Y RESULTADOS

�����,� �� ��� � ������ SMP &�� ��� ������ �� ���������

���� �4:7+/- ,* ./ -106./+18(

�������� ���� �� �� ���� ��!���� � ��� ��� ��� ���� � ����.��� ��� ��#

������� ��� ��� ���� ���� � � �������% &�� �� ���� ���� ����������� ��

��� ��� �� � ��� ��� ����� � 3�,� ����� �� �������% ��� �� &�� ����� ��

�/���� ���� � � @A%9@9 �D����� ��� ��� ��� ���� � 3�,� �� �� ��� ��� ��

����� ���� � ! �� ����� ���� �� (�� ��������� ����� �� ��� �� ���� � ���

���������� � � ���� �.� �� �� ��� ���� ���� G>�@�9H ! G>�@�;H� 0� �� �����

GA�@#$9H �� �������� ��� ��������� �� x = 200.21 � ����� �� � �� -����

����� ���� ��

j y, in � u ,�m/s v ,�m/s �� kg/m3 p, N/m3 T, K M

1 8.0 0.000 5.125E+02 0.000E+00 2.678E+00 2.992E+05 3.891E+02 1.296E+00

2 8.7 0.025 5.055E+02 -1.166E+00 2.671E+00 2.994E+05 3.904E+02 1.276E+00

3 9.3 0.050 5.005E+02 -2.305E+00 2.682E+00 3.011E+05 3.911E+02 1.262E+00

4 10.0 0.075 4.984E+02 -2.370E+00 2.687E+00 3.020E+05 3.914E+02 1.257E+00

5 10.6 0.100 4.983E+02 -1.394E+00 2.686E+00 3.017E+05 3.912E+02 1.257E+00

6 11.3 0.125 4.993E+02 3.295E-01 2.677E+00 3.003E+05 3.907E+02 1.260E+00

7 11.9 0.150 5.006E+02 2.143E+00 2.667E+00 2.986E+05 3.901E+02 1.264E+00

8 12.6 0.175 5.011E+02 3.329E+00 2.662E+00 2.979E+05 3.898E+02 1.266E+00

9 13.2 0.200 5.003E+02 3.255E+00 2.669E+00 2.990E+05 3.902E+02 1.263E+00

10 13.9 0.225 4.975E+02 1.599E+00 2.693E+00 3.027E+05 3.916E+02 1.254E+00

11 14.5 0.250 4.934E+02 -1.102E+00 2.728E+00 3.083E+05 3.936E+02 1.240E+00

12 15.2 0.275 4.901E+02 -3.186E+00 2.756E+00 3.127E+05 3.952E+02 1.230E+00

13 15.8 0.300 4.897E+02 -3.276E+00 2.760E+00 3.133E+05 3.954E+02 1.228E+00

14 16.5 0.325 4.916E+02 -1.752E+00 2.744E+00 3.108E+05 3.945E+02 1.234E+00

15 17.1 0.350 4.939E+02 6.827E-02 2.724E+00 3.077E+05 3.934E+02 1.242E+00

16 17.8 0.375 4.954E+02 1.237E+00 2.711E+00 3.056E+05 3.926E+02 1.247E+00

17 18.4 0.400 4.959E+02 1.524E+00 2.707E+00 3.049E+05 3.924E+02 1.249E+00

18 19.1 0.425 4.958E+02 1.197E+00 2.707E+00 3.050E+05 3.924E+02 1.249E+00

19 19.7 0.450 4.957E+02 6.841E-01 2.709E+00 3.052E+05 3.925E+02 1.248E+00

20 20.4 0.475 4.957E+02 2.792E-01 2.709E+00 3.053E+05 3.925E+02 1.248E+00

21 21.0 0.500 4.957E+02 1.546E-02 2.709E+00 3.052E+05 3.925E+02 1.248E+00

22 21.7 0.525 4.957E+02 -2.583E-01 2.709E+00 3.052E+05 3.925E+02 1.248E+00

23 22.3 0.550 4.958E+02 -6.817E-01 2.708E+00 3.052E+05 3.924E+02 1.248E+00

24 23.0 0.575 4.959E+02 -1.201E+00 2.707E+00 3.050E+05 3.924E+02 1.249E+00

25 23.6 0.600 4.959E+02 -1.515E+00 2.707E+00 3.049E+05 3.923E+02 1.249E+00

26 24.3 0.625 4.954E+02 -1.216E+00 2.711E+00 3.056E+05 3.926E+02 1.247E+00

27 24.9 0.650 4.939E+02 -7.966E-02 2.724E+00 3.076E+05 3.933E+02 1.242E+00

28 25.6 0.675 4.917E+02 1.628E+00 2.743E+00 3.106E+05 3.944E+02 1.235E+00

29 26.2 0.700 4.900E+02 3.028E+00 2.757E+00 3.129E+05 3.952E+02 1.229E+00

30 26.9 0.725 4.904E+02 3.005E+00 2.754E+00 3.124E+05 3.951E+02 1.231E+00

31 27.5 0.750 4.933E+02 1.162E+00 2.729E+00 3.084E+05 3.936E+02 1.240E+00

32 28.2 0.775 4.973E+02 -1.430E+00 2.695E+00 3.031E+05 3.917E+02 1.253E+00

33 28.8 0.800 5.001E+02 -3.145E+00 2.671E+00 2.993E+05 3.903E+02 1.263E+00

34 29.5 0.825 5.011E+02 -3.295E+00 2.663E+00 2.980E+05 3.898E+02 1.266E+00

35 30.1 0.850 5.006E+02 -2.164E+00 2.667E+00 2.987E+05 3.900E+02 1.264E+00

36 30.8 0.875 4.994E+02 -4.035E-01 2.677E+00 3.002E+05 3.906E+02 1.260E+00

37 31.4 0.900 4.985E+02 1.252E+00 2.685E+00 3.015E+05 3.911E+02 1.257E+00

38 32.1 0.925 4.988E+02 2.225E+00 2.687E+00 3.018E+05 3.912E+02 1.258E+00

39 32.7 0.950 5.018E+02 2.176E+00 2.681E+00 3.009E+05 3.908E+02 1.266E+00

40 33.4 0.975 5.115E+02 1.183E+00 2.672E+00 2.994E+05 3.902E+02 1.291E+00

41 34.0 1.000 5.106E+02 0.000E+00 2.678E+00 2.992E+05 3.891E+02 1.296E+00

A�@#$9� C�������� �� x = 200.21 � � �� -���� ����� ���� �

5.4. GRÁFICAS DE LA SIMULACIÓN 9>A

0� �� ����� GA�@#$10H �� �������� ��� ��������� �� x = 388.65 � G� �� ��� �

�� �������H � �� -���� ����� ���� ��

j y, in � u ,�m/s v ,�m/s �� kg/m3 p, N/m3 T, K M

1 8.0 0.000 5.125E+02 0.000E+00 2.678E+00 2.992E+05 3.891E+02 1.296E+00

2 8.7 0.025 5.055E+02 -1.166E+00 2.671E+00 2.994E+05 3.904E+02 1.276E+00

3 9.3 0.050 5.005E+02 -2.305E+00 2.682E+00 3.011E+05 3.911E+02 1.262E+00

4 10.0 0.075 4.984E+02 -2.370E+00 2.687E+00 3.020E+05 3.914E+02 1.257E+00

5 10.6 0.100 4.983E+02 -1.394E+00 2.686E+00 3.017E+05 3.912E+02 1.257E+00

6 11.3 0.125 4.993E+02 3.295E-01 2.677E+00 3.003E+05 3.907E+02 1.260E+00

7 11.9 0.150 5.006E+02 2.143E+00 2.667E+00 2.986E+05 3.901E+02 1.264E+00

8 12.6 0.175 5.011E+02 3.329E+00 2.662E+00 2.979E+05 3.898E+02 1.266E+00

9 13.2 0.200 5.003E+02 3.255E+00 2.669E+00 2.990E+05 3.902E+02 1.263E+00

10 13.9 0.225 4.975E+02 1.599E+00 2.693E+00 3.027E+05 3.916E+02 1.254E+00

11 14.5 0.250 4.934E+02 -1.102E+00 2.728E+00 3.083E+05 3.936E+02 1.240E+00

12 15.2 0.275 4.901E+02 -3.186E+00 2.756E+00 3.127E+05 3.952E+02 1.230E+00

13 15.8 0.300 4.897E+02 -3.276E+00 2.760E+00 3.133E+05 3.954E+02 1.228E+00

14 16.5 0.325 4.916E+02 -1.752E+00 2.744E+00 3.108E+05 3.945E+02 1.234E+00

15 17.1 0.350 4.939E+02 6.827E-02 2.724E+00 3.077E+05 3.934E+02 1.242E+00

16 17.8 0.375 4.954E+02 1.237E+00 2.711E+00 3.056E+05 3.926E+02 1.247E+00

17 18.4 0.400 4.959E+02 1.524E+00 2.707E+00 3.049E+05 3.924E+02 1.249E+00

18 19.1 0.425 4.958E+02 1.197E+00 2.707E+00 3.050E+05 3.924E+02 1.249E+00

19 19.7 0.450 4.957E+02 6.841E-01 2.709E+00 3.052E+05 3.925E+02 1.248E+00

20 20.4 0.475 4.957E+02 2.792E-01 2.709E+00 3.053E+05 3.925E+02 1.248E+00

21 21.0 0.500 4.957E+02 1.546E-02 2.709E+00 3.052E+05 3.925E+02 1.248E+00

22 21.7 0.525 4.957E+02 -2.583E-01 2.709E+00 3.052E+05 3.925E+02 1.248E+00

23 22.3 0.550 4.958E+02 -6.817E-01 2.708E+00 3.052E+05 3.924E+02 1.248E+00

24 23.0 0.575 4.959E+02 -1.201E+00 2.707E+00 3.050E+05 3.924E+02 1.249E+00

25 23.6 0.600 4.959E+02 -1.515E+00 2.707E+00 3.049E+05 3.923E+02 1.249E+00

26 24.3 0.625 4.954E+02 -1.216E+00 2.711E+00 3.056E+05 3.926E+02 1.247E+00

27 24.9 0.650 4.939E+02 -7.966E-02 2.724E+00 3.076E+05 3.933E+02 1.242E+00

28 25.6 0.675 4.917E+02 1.628E+00 2.743E+00 3.106E+05 3.944E+02 1.235E+00

29 26.2 0.700 4.900E+02 3.028E+00 2.757E+00 3.129E+05 3.952E+02 1.229E+00

30 26.9 0.725 4.904E+02 3.005E+00 2.754E+00 3.124E+05 3.951E+02 1.231E+00

31 27.5 0.750 4.933E+02 1.162E+00 2.729E+00 3.084E+05 3.936E+02 1.240E+00

32 28.2 0.775 4.973E+02 -1.430E+00 2.695E+00 3.031E+05 3.917E+02 1.253E+00

33 28.8 0.800 5.001E+02 -3.145E+00 2.671E+00 2.993E+05 3.903E+02 1.263E+00

34 29.5 0.825 5.011E+02 -3.295E+00 2.663E+00 2.980E+05 3.898E+02 1.266E+00

35 30.1 0.850 5.006E+02 -2.164E+00 2.667E+00 2.987E+05 3.900E+02 1.264E+00

36 30.8 0.875 4.994E+02 -4.035E-01 2.677E+00 3.002E+05 3.906E+02 1.260E+00

37 31.4 0.900 4.985E+02 1.252E+00 2.685E+00 3.015E+05 3.911E+02 1.257E+00

38 32.1 0.925 4.988E+02 2.225E+00 2.687E+00 3.018E+05 3.912E+02 1.258E+00

39 32.7 0.950 5.018E+02 2.176E+00 2.681E+00 3.009E+05 3.908E+02 1.266E+00

40 33.4 0.975 5.115E+02 1.183E+00 2.672E+00 2.994E+05 3.902E+02 1.291E+00

41 34.0 1.000 5.106E+02 0.000E+00 2.678E+00 2.992E+05 3.891E+02 1.296E+00

A�@#$10� C�������� �� x = 388.65 � � �� -���� ����� ���� �

���� ������� �� -���� �� ����� -�� �� �� �,����� �� �������� java Mallag%

�� ���� ������ � ���� � �� ���+ �� deltae.dat ��� ���+ ��� X.dat ! Y.dat

��� ������ ���� ���� ��� ��������� (x, y) ������� ������� � ��� ������ ������� -�� ��% ��� ��� �������� ����� ���+ ���% �� ���.����� ��� MATLAB 5 ���

.����� � �������� � �� � �� ���� ������N

0� �� � ���� � MATLAB �� ������ �� ������ chdir x:\java2D ����

� ������ �� �� ������ � ��� ��� �� ��� ���+ ��� *.dat�

9>: CAPÍTULO 5. PRUEBAS Y RESULTADOS

2� ������� ��� ������� load X.dat ! load Y.dat% ���� ������ ��� ����#

����� �� ����� -�� �� ! �� ������� ��� ��� ����� X ! Y�

���� ���.��� �� ����� � u% �� ���� �� ������ ��� ������� � �� ����� ��

����� ���� �% ��� �� ������ load u.dat% ������ ������� �� ������ con-

tourf(X,Y,u,20)% ��� �� ��������� ;? �� �� �D���� � ������ �

� ���% ���� ����� �� ��! � �� .��� �� ���� �� ��������� �� � �� ���.��% !�

&�� ���� �� � ���� ��� ���� ��! �� ���� �� � ��� ��������� 7�� ��

.���� GA�@# 57H ��� ��� ������� � �� ��� ���� u ��� ���.���� ��� 9?

������ � � ��� �� �������� �� ��� �� .���� GA�@# 51HGaH ��� ;? ������

� � ���� ���� ���.��� �� ����� � u ����� �� � �� -���� �� ����� ���� �

�� ������ contourf(X,Y,un)� ������������ �� ���� �� �� � ��� ����� #

� ���� ���� ���.��� ��� ���� ��� ����� �� 3�,��

(�� � �� ����� �� � ���.��� � �������� �������� ��� MATLAB ! ;? ������

� � ���% �� ��� ����������� �� � ��� @A%9@9 �D����� ��� ��� ���� � 3�,�% !

����� &�� ��� ��� &�� ��������� �� ���,���� � �D������ (�� .����� GA�@#

51H% GA�@# 52H% GA�@# 53H% GA�@# 54H% GA�@# 55H ! GA�@# 56H �������� �� ��� ��� ��

� ��� �� �� ����� ��� ����� �� 3�,�% ��� �� �� �� (a) �� �� ��� ��� ��

����� ���� � ! �� �� �� (b) �� �� ��� ��� �� �� ����� ���� � ������ � >??

����� �� �� � �����

(a)

480

500

520

540

560

580

600

620

640

660

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

500

520

540

560

580

600

620

640

660

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F51. Componente de velocidad en x (m/s)

5.4. GRÁFICAS DE LA SIMULACIÓN 9><

(a)

−60

−40

−20

0

20

40

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

−60

−40

−20

0

20

40

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F52. Componente de velocidad en y (m/s)

(a)

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F53. Número de Mach

9>= CAPÍTULO 5. PRUEBAS Y RESULTADOS

(a)

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F54. Densidad (ρ). Kg/m3

(a)

280

300

320

340

360

380

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

280

300

320

340

360

380

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F55. Temperatura (T ). K

5.4. GRÁFICAS DE LA SIMULACIÓN 9>B

(a)

1

1.5

2

2.5

3

x 105

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3

x 105

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F56. Presión (p). N/m3

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F57. Componente de velocidad en x (m/s) (10 curvas de nivel)

� � ��������� � ��� ���������� � � ���� � �� ���� �� G>�@�9H �� ���� � ��

����� � � �� �� �D���� � '��+ � >�? ! @�? GM = 3.0 ! M = 4.0H% ����� �������� ��������� �������� �� ��� .����� GA�@# 58H ! GA�@# 59H ������� �������%

��� �� �� �� (a) �� �� ��� ��� �� ����� ���� � ! �� �� �� (b) �� �� ��� ��#� �� �� ����� ���� � ������ � >?? ����� �� �� � �����

9@? CAPÍTULO 5. PRUEBAS Y RESULTADOS

(a)

2.4

2.5

2.6

2.7

2.8

2.9

3

3.1

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

2.5

2.6

2.7

2.8

2.9

3

3.1

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F58. Número de Mach (M = 3.0)

(a)

3.2

3.3

3.4

3.5

3.6

3.7

3.8

3.9

4

4.1

4.2

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

(b)

3.3

3.4

3.5

3.6

3.7

3.8

3.9

4

4.1

4.2

0 50 100 150 200 250 300 3500

5

10

15

20

25

30

35

40

Figura 5.4-F59. Número de Mach (M = 4.0)

��������

(� ��������� �� � �� �������� �������� �� ����� ������,� ��� �� �,���#

� �� �� ����� ���� ��% ! �� �� ��� ���� � �������� �� � ����.�� �� ������

�D� ��� -�� � � �������� ! ������% �� � � �� ���� ���� � � ���� &�� ��

����,�� ! � �������� &�� �� ������ � ����% ��� �� &�� � �� �� � ��� ��� ���#

�� ���������� �� �� �������� ��% �� ����� ������� ��������� �� ���������

���� � � � ��� �� � ���� � ������� ������� �� �� ��������� �� � ���������%

�� �� � ��� ����������� ���� �� �� ����� � ��,���� ! �� ���� � �����,��% &��

-�� � ��� �� ��)� ! �� ���������� �� � ������ &�� ���������� ������ �

�������� ! &�� �� ����� ��� �� � ���� ����� ���� �/���� ���� 0� ����� ���

� ���� � �����,�� ������� ��� �� ��� ����� ! � ���� � ����� ��� ������%

��� �� &�� ����������� �� ��! ������� ���� ������� � ��� ��� ���� ���������

�� �� ��� �� � ����.��� 0��� ������� � �� �� �� �� �.� ��� � ���� �� ����#

� ��� �� ! � ����� ��� ��� 8��� � ��� �����,�� &�� �-���� �� ���� � �����,��%

���� ����� � ����� ��� �� �/���� ��% �� �� �� &�� ���� �� ������ � ��#

���� ������� ��% ��� ��!�� -�� � �% ��� ������ &�� �������� �� ��������

��������% ����� � ����� � �� �,���� �� ��������% � � � ���� ��� � ����� �

������� ��������

��� ��� ����������� ��� � �������� ��% ���������� ���� ! +����� �% �� ��#

�� ��� �� ����� � ��,���� ���� �� �� �������� � �� �� ��� ��� � �,���#

� ��% �� &�� ����� � �� �� � ��� �� �� ���� � �����,�� ���� ����� ��� �

����� ��� �� ����� ����� ��� ���% �� ���� ���� �� ��� ���������� ����� �#

� ���� ����&� �� � �� � � ����� ��������% ����� � ����� � ��� �� � ����

� ����� � ������� ��

9@9

9@; CONCLUSIÓN

(�� ����������� ��� &�� �� ��� ���� � ���� �� �� ��� ��� � �� �����N

'�!�� � ��� � �������� ���

� � � �� �/���� �� � ��� � ��� ����������

'�!�� � ��� � ���������� �����

2 ����� ��� �� �������������

(���� ��� �� ! ���������� ��

������� ��� �����������

'��� �������� ��

�*-6.)/,2- /.+/(=/,2-

2� ������������ ��� ��������� ���������� �� ��� ��,�� ���% � �� ��� ��

��&���� � ������� ��� �/���� �� ��� ��,����% ��� �� &�� �� ����� ���� ���

�����,�� ���� ���� �� ��� ��� ���� ���� ���� 0� ��� � �� JPVM ���� � � ��

3�/ � � � � ����������� �� �������� �������� � ����&� �� �����-���� &�� ��

�������% ! �� ���� �� ���� ������� ���������� ����� ����� ��� ��� � ����� �

�,���� ���

�101)/+12(*-

0� �� �������� �����,� �� �� �������!� �� � ������ ������� � 3�,�� ���#

���� ���� �������� ���% � �� &�� �� ������ ����� ��� �� ���� ���� ����� ! ��

�� ��� �� �� ���� �� �������� �� ����� � ��,����M ! �� ��� ��� &�� �� ����

������� � �� � ������ ��� 3�/ ��� � �� ��� �� ������� ���� ��� (� ����#

����� �� � �� � ������ ��&� ��� �� ��������� �� � ��� �� ����� �� ����M ���

��������� ������ ���� ���� ��� �� � 3� �� ��� �� �������� �� �����,�

� � ����� � ������������ ! ����� ���-�� ������� ���� ���� ���� &�� �� ���#

!���� �·� � Ghttp://www.dfc.icai.upco.es/balrog/adfc.htmlH &�� � ���

CONCLUSIÓN 9@>

���� .��� � ������� � �� � ������ ������� � 3�,�� ������� ���� �����

������� ! ��,���� ���� � � ���� � ���� � �� ��% ��� ��� ����� � ������#

������ ! �� ���� �)�� �� +�� �������� �� ��,�� ���

4/5/;2- D6)642-

0� �� ���� � � �� �������� �� ��������% ��� �� �� ����� ������ � ����� #

��� �� &�� �� � ���� ����������� ���N

���������� �� ! ������� ��� �� � ����-���� � � ����� � MPI ��� ��#

����� � ��,�����

���������� �� �� ����� � ���� � �����,�� �� ������ � �������� #

� .��% ���� + ��� � �,���� ���

����� ��� �� �� �� ����� �� � ����� ���� ���� �� ������� � �����,��

����� ��� �� �� ���� ��� � � ����� ��� �� ���� ����������� ������� #

���

$������ �� � ���������

2(-1,*4/+12(*- 7(/.*-

0� �� ������ � �� ��� ��� ��� ���D� �� ��� � ����������� ����������

��� ��� ���� ����� ��� ! � ����� ��� �� �&� ���� �������� �����������

� +���� 9;= ����������� � ����� � ������� �% � �� �������!�� ��� ����

���� ��� ���� ���������% ��� �� ������ �� � ����� �� ������� ����,� !

�������� ���� � ���� &�� ��� ��&� �� �� ��������� �� ���� ��� � �#

�����

*���� �+���% �� ���� ���������� ��� ��� ����� � � ������� �� ��

0���+ 2 ������� � �0�% ������� �� P�5�+���% �����% &�� ��� ��� A%9;?

����������� ������� >A�=: $���3���� (�� ����������� ��������� ! ��� ���#

� ����������� �� +�� ������� � �� ������ +����� ����� ���� � ����� ��

9@@ CONCLUSIÓN

-����� �� � ��������% ���� �� �� ��������� ���� �� �� ��% ��� .��� ��

������ +�����% ����� ��� ��-������� ���� �� ������% ! +���� ��� ����

���� � � ���� �� � ����� ��� ���� &�� ��� �������� � ���� ���� � ���#

� ��� �� �� ��������� �� 2 � �������% ��� ��������� &�� �+�� ��&� ���%

���� ������&� ��� ����� �����������% �� ��������� �� ��������% ���� ���

����������� � ������� &�� �� �� � ��� ���� �������� � � ����� ������ ��#

����� ���% -�� ���% &��� ���% ����% ! &�� �� ���������� �� � �� ����� ��

������ � ����� �� �� �����,� ����% �� �� &�� �� ��&� ���� � ���� ���� !

���� ��� � ��!�� �������� ��% ���� �� �� ����� � ��,���� ! �� ���� � �����#

,��% ���� ������� � ��������� � ��!�� �������� ��% �.� ��� � ! ���� � ��� ���

����������!�

K9L E �5 ����% ����!M �����% ' �+���N �������� ���������� #�������� ��

$���������� %��� &��'����� (���������� �� �������� )��������� ����#

� �� *���% 9BBB�

K;L �����% �� $�N *������ �� +������ �������� ��������� � ��� E����!%

9BB@�

K>L E ����% "�����! 7�N ��������� �������� ����������� $+� '$ �����% 9BBA�

K@L ����� % "�����M "���� �� �����N ,����- �������� )�������% ����� � � ���

���� �+ �� ������!% 9BB@�

KAL "����% E �� ��M (��5% 04 ��M 25,�����% ���+��!N %��� .�/� �������� ���

������ ���������� '��� ��� .������������� /�������� 2� ��� .� �� 0�#

� ���� �� �������� �� 2�� ��� $+� '$ �����% 9BB@�

K:L �����% ����M ��� ��% "��--N )������� ����������� � ��� E����!%

9BB>�

K<L (�����% ����� ��N #�� $�� �� �������� ����������� ����� �� *���% 9BB<�

K=L ��-- I�����M ��--% '����N )�������-� 0���� .���� 1 JAVA ��������� E #

��!% 9BBB�

KBL $��������% ����4 2�N 2 ������ 8����� ��� G;� �H� ����� �� *���

9BB<�

K9?L '��&��� "�����% '�����N J�6 ��������� �� �������� � ���#E����!

9BB>�

9@A

9@: BIBLIOGRAFÍA

K99L ����4�% "�����! C�N )������� ����������% �� �� ���� �� ����� ���

� ��� E����! ���� �+ �� ������!% 9BB9�

K9;L (��% ����N )������� ���������� � JAVA% ����� � � ��� � ��� E��#

��!% 9BBB�

K9>L 8�5�% 2����M E��� *���!N JAVA #������% ����� � � ��� 8FC����!% 9BBB�

K9@L ���% �����M P�����% 04��N 2����� 2������ $��-���� ����� �� *���%

9BB9�

K9AL �������% ���+�� 0�M *� ���% E �� �� ��N C++ ���������� �� 3����

����� )������� ����� �� *���% 9BB;�

K9:L (�����% ���� �N �������� �� *���������� )�������� � �����! �- �����%

���� ��� �� �������+��� E ��!#������ ���� ���� ��� ��% ;??9�

K9<L �����% ����M ��� �� "��--N )������� ����������� ������� ���� ���#

����� 2� ���� 2�� ��� � ���#E����!% 9BB>�

K9=L "��� � �������� � 2� ��� .� ������ �� � 8�,��� 8� ���� (��������N

���� -�� 2� ��� .� ������ �� http://www.oonumerics.org/onn/

K9BL ���5 ��������N ( ����5 ����+���5 Q ���� 7��� �� http://www.

netlib.org/benchmark/linpackjava/

K;?L ��!��� 0�����% *��� �����N 4������ ������N J�� ��&� �� � ����� �

JAVA � ��� �� � ���� �����-����� +������������ ��#��% 9BBB�

K;9L ����� % ��� ��N 4������ ������N ���4��5 �������� ������ �� � �����

J� ���� � � 7 �� � �% J2�% 9BB<�

K;;L ���� � ���-�% ����� �� E��5 �� "���� ���� "���� �#

��� G9BB=HN ����� �� ���� -�� ����� ��� �������� ��

http://math.nist.gov/javanumerics/reports/jgfnwg

-01.html

K;>L ������ ��� ��� �- �+� ��'� �)� ;???% ���% 7�� @>% �D� <N �+!� ����!

���� �������� �� ��� ���

BIBLIOGRAFÍA 9@<

K;@L �������% ��+� �� ���N )����������� 3���� *-����� #�� +����� '���

$����������� '�"��4#* �� ���% 9BBA�

K;AL 2�����!% '� E����N .������ '��� *���������� 5������� � )������� 5���

������ ������4���+#*� ������ 2�� �� � �+�� ��� 0�� ���� ��% 9BB9�

K;:L ��� ���% ���� *�M ��� U ' �����N )����������� .������ ��� 3���� *-��

����� 0 ��� �� 2�� ����#7�����% 9BB:�

K;<L ��5�����% 2+� �+ ��N )����������� .������ � 5������� �� 0����

�� '��� $���������� �� 3���� *-����� �� &������ 0-������ � E ��!#

������ ���� ���� ��� ��% 9B<<�

K;=L 8�����+���% ��+�N 4������ ������N E+! $+���� ��� � �� �� G9BBBH�

http://www.sunlabs.com/~ouster

��F� �� �

��� �������� �

������"��#�� ���� �

���� �/- *+6/+12(*- ?6* <251*4(/( *. C6;2

0/ ���� � ��� ��� ����� ��� ��� �� �� 3�,� �� ���� ����% ���� ��������#

��� � ����� � (u, v, w) ! �� ���� ���� ����� ��� ���� ��� &�� ������������ �� 3�,� ���� � ���� ���� ��� ������ ��� ����� ��� ���N �� �����#

������ � ����� � (u, v), &�� ����� ����������� ��� � �� ���������� w% ! ��

���� ���� ����� ��� ���� 0��� ��� ���� �� ���� � �� �D���� � ����� �#

��� &�� ��� ����� �� 3�,�� ������������% �� 3�,� �� ���� ���� � ��� ����

��� ����� ��� ���N ���� ��� ���������� � ����� � u% &�� ������������ ��

����� � � ������ � ��� ��� ����� ����������� �� �������% ! ��� �� ���#

� ���� ����� ��� ���� (� �� � ��� �� � ���% �� � ���� ����������� �

����� � ������� � �� &�� �� ��&� ��� ����� �� ��������� ���� �� 3�,��

J� 3�,� � ����� ����� ��� �� -��������N �� -� �� ��% �� ������ �� ������% !

���� � �� ����������� �� -�� �� � ����� (�� ����� ���� &�� �� � �������

��� ���� 3�,�� � ������% � � -�� �� � ����� (� -�� �� � ���� ������

����� +�! ���������� �� � ��� ����� � -������� ����� �� &��� ��� �� ��

3�,�% �� �,����� ����� ��� ������ �� +�������� � ����� �� ����� �������%

���� �� ����� � 3�,� ���� �� ��� �� �!��� �� � +�� � � ������ � �� +�!�

� ��� ������ ����� � �� ������� � � ���

9@B

9A? APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

(�� ����� ���� � ��� ��#2��5�� ���� �� 3�,� �� ���� ����% ������� ���%

� ����� ! � � -�� �� � ���� ��� ��� � �� �����N

9� 0���� ���� � ���� �� ��

�H 3���� �� � ����������

Dt+ ρ∇ · V = 0

�∂ρ

∂t+ (V · ∇ρ) + (ρ∇ · V) = 0

�H 3���� �� ����������

∂ρ

∂t+ ∇ · (ρV) = 0

;� 0���� ���� � ��������

�H 3���� �� � ���������%

���� �� ���������� xN

ρDu

Dt= −∂p

∂x+

∂τxx

∂x+

∂τyx

∂y+

∂τzx

∂z+ ρfx

���� �� ���������� yN

ρDv

Dt= −∂p

∂y+

∂τxy

∂x+

∂τyy

∂y+

∂τzy

∂z+ ρfy

���� �� ���������� zN

ρDw

Dt= −∂p

∂z+

∂τxz

∂x+

∂τyz

∂y+

∂τzz

∂z+ ρfz

�H 3���� �� ���������%

���� �� ���������� xN

∂ (ρu)∂t

+ ∇ · (ρuV ) = −∂p

∂x+

∂τxx

∂x+

∂τyx

∂y+

∂τzx

∂z+ ρfx

���� �� ���������� yN

∂ (ρv)∂t

+ ∇ · (ρvV ) = −∂p

∂y+

∂τxy

∂x+

∂τyy

∂y+

∂τzy

∂z+ ρfy

���� �� ���������� zN

∂ (ρw)∂t

+ ∇ · (ρwV ) = −∂p

∂z+

∂τxz

∂x+

∂τyz

∂y+

∂τzz

∂z+ ρfz

A.1. LAS ECUACIONES QUE GOBIERNAN EL FLUJO 9A9

>� 0���� ���� � ��������

�H 3���� �� � ���������%

ρD

Dt

(e +

V 2

2

)= ρq +

∂x

(k

∂T

∂x

)+

∂y

(k

∂T

∂y

)+

∂z

(k

∂T

∂z

)

−∂ (up)

∂x− ∂ (vp)

∂y− ∂ (wp)

∂z+

∂ (uτxx)

∂x

+∂ (uτyx)

∂y+

∂ (uτzx)

∂z+

∂ (vτxy)

∂x+

∂ (vτyy)

∂y

+∂ (vτzy)

∂z+

∂ (wτxz)

∂x+

∂ (wτyz)

∂y+

∂ (wτzz)

∂z

+ρf · V

�H 3���� �� ���������%

∂t

(e + V 2

2

)]+ ∇ ·

(e + V 2

2

)V

]= ρq +

∂x

(k

∂T

∂x

)+

∂y

(k

∂T

∂y

)

+∂

∂z

(k

∂T

∂z

)− ∂ (up)

∂x− ∂ (vp)

∂y

−∂(wp)

∂z+

∂(uτxx)

∂x+

∂(uτyx)

∂y

+∂(uτzx)

∂z+

∂(vτxy)

∂x+

∂(vτyy)

∂y

+∂(vτzy)

∂z+

∂(wτxz)

∂x+

∂(wτyz)

∂y

+∂(wτzz)

∂z+ ρf · V

J� 3�,� ��� �� ��� �.� � ��% �� 3�,� ��� �� � ��� ��% �� -�������

� ���������� ��� � ���� �% �� -�� �� � ���� ! �� ������ � � ������% ��

��� ������ �� ������M ����� �/ �� � ���� ��� ��� ���� "����������� ����

��� ����� ����� ����� � ��� ����� ����������� ���� 2 � ��� ����� ���� ����� �#

��� � ��� ��#2��5�� ��� ���� � ��� ��� ���� ��� &�� ��������� �� -� �� �� !

�� ������ �� ������% ������� ��� ����� ���� � ��� ��#2��5�� ���� �� 3�,�

���� 0� ���� ���� ���� �� ��� ������� ����� ���� � 0����% �� � � &��

-�� &� �� �.� � �� ����� �� � ���� �� � ! �� ����� �� � �������% �� ��

-���� � ��������� ��% �� ��� ����M �� ��� ��� ����� ���� � �������% ����

�� �/ ���� �� �&��� � ���� G9<A@H% �� �� �� � � � &�� �� ������� �� ���������

(�� ����� ���� ���� �� 3�,� ��� ��� ��� � �� �����N

9A; APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

9F� 0���� ���� � ���� �� ��

�H 3���� �� � ����������

Dt+ ρ∇ · V = 0

�H 3���� �� ����������

∂ρ

∂t+ ∇ · (ρV ) = 0

;F� 0���� ���� � ��������

�H 3���� �� � ����������

���� �� ���������� xN

ρDu

Dt= −∂p

∂x+ ρfx

���� �� ���������� yN

ρDv

Dt= −∂p

∂y+ ρfy

���� �� ���������� zN

ρDw

Dt= −∂p

∂z+ ρfz

�H 3���� �� ����������

���� �� ���������� xN

∂ (ρu)∂t

+ ∇ · (ρuV ) = −∂p

∂x+ ρfx

���� �� ���������� yN

∂ (ρv)∂t

+ ∇ · (ρvV ) = −∂p

∂y+ ρfy

���� �� ���������� zN

∂ (ρw)∂t

+ ∇ · (ρwV ) = −∂p

∂z+ ρfz

>F� 0���� ���� � ��������

A.1. LAS ECUACIONES QUE GOBIERNAN EL FLUJO 9A>

�H 3���� �� � ����������

ρD

Dt

(e +

V 2

2

)= ρq − ∂ (up)

∂x− ∂ (vp)

∂y− ∂ (wp)

∂z+ ρf · V

�H 3���� �� ����������

∂∂t

[ρ(e + V 2

2

)]+ ∇ ·

[ρ(e + V 2

2

)V]

= ρq − ∂ (up)∂x

−∂ (vp)∂y

− ∂ (wp)∂z

+ρf · V

0� ����� �� � ��� ����� ���� ����� ����% +������ ��� � �� ����� �������#

� ���

H ������ ��� �� -����� � ��� ����� ����% ��� ������ ����� �� ������

���� ! �� ���� ������ ����� �� � ���������% ������ ����� � ��� ��

-����� � �/������ ��� �� �� � �� -�� ��� � �� -����� ! �� �������% �� ��

� 0���� ! (�������� ���� !� ���� ������% �� �� -���� � ��������� ��%

0���� ����� � .,��� ��� ��� � �� ! ��������� �� ��� �� �� ��� ��������

�� � ����M ! (�������% �� �� -���� � �� ��������� ��% .,� �� ������� !

��������� �� ��� �� �� �������� �� ���� � � ��� � �� � �����

H � �+�� ����� ���� ����� ��!�� �� � ����� � ����� ���� -����� ����

���� ���� �� � ������% ��� �� ����� ��� -�� ��� � �������� ������ �������

!% �� �������% �� �/ ��� ��� ����� �� �� -���� ������ ���� ����� ����#

� �����

H (� -���� � ��������� �� ! � �� ��������� �� � ��� ����� ���� � ��#

����� ! � �������% ���� .���� �� ��� ������� ��� � ������ �&� �����

�H (� -���� � ��������� �� � ��� ����� ����% ���� ���� ���� ��� �� ��

��� �&� ��� &�� ����!�� �� ������� � � � ���� ���� �% ��� ����

∇ · (ρV) � ∇ · (ρuV). ��� ���� ����� �� -���� � ��������� �� � �� ����

�� ������ ������� ����� ����� �� �����������

�H $������ � ��� ����� ���� �� ���� ��� � �� � ��� ����� � 3�,� ρ% p% u%

v% w% e� 0� ���� ��� �� �� ������������ ��������� ���� � &�� �� ���

9A@ APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

�� ���-����% ��� �� -����� ������������� �� ������ ����� ���� �� ���

���-����% �� ����� �� � ����� ��

p = ρRT,

��� R �� ��� ��������� ������.�� �� ���� 0��� ����� �� �� ������

����� �� ������ � ������ 0��� ������ ��� ��/�� ����� ��% ���� ���� ��

������� ��� ���� �� ��� ���� T, &�� �� �� ������������ J�� ���� ��

����� �� ���� ��������� �� � �����% ��� ��� �� ����� �� ����� ��� ��

����� ��� ��� ����� � �����% ��� �,�����

e = e(T, p)

���� �� ��� ���-���� ����� �������% ���� ����� �� ���� ���

e = cvT,

��� cv �� �� ����� ������.�� �� ������� ���������� 0��� D�� �� �� ���#

��� ����� �� ����� �� � ������

���� �240/ ,* ./- *+6/+12(*- ,1-*A/,/- 3/4/ �

������� �� ��������� � �� ��� �� � 3� �� �������� ���� �� �/ �� �

��� ����� ���� ���-�� � ��� ����� ���� �� �� -���� � ��������� �� � � ��

��������� ��% �� ���� � �� ������ � �� ��� �� � 3� �� �� +� ����������

���������� �� ��� D�� ��� ����� � � �� �������� � � ���� ����� �% ����

���� ��� �� �������� ��� � �� ����� ������� �� �� 3�,��

(� �� ���� �������� ��% �� -���� � ��������� �� � ��� ����� ����% ������#

� ��� ��!�� -�� � � ���� ���� � � �� �������� ����� �� � ����������%

!� &�� ��� ����� ���� � ���� �� �% ������� ! �������% �� �� -���� �

��������� ��% ����� ��� �/������� ��� ��� ���� ����� �� ����� ��� ���� �#

����� ���� �� ���� -���� ����� ��% +�! &�� ����� &�� ��� ����� ���� �� ��

-���� � ��������� �� � ���� �� ���� �� � ������� � �� �� ��� �&� ����

0���� ���� ��� ����!�� �� ������� � �� 3�,� � � ���� ���� � -�� ��% �����

A.2. FORMA DE LAS ECUACIONES DISEÑADAS PARA CFD 9AA

����N

ρV 6��� �� ����

ρuV 6��� �� �� �������� x �� ��������� ���������

ρvV 6��� �� �� �������� y �� ��������� ���������

ρwV 6��� �� �� �������� z �� ��������� ���������

ρeV 6��� �� ������ �����

ρ

(e +

V 2

2

)V 6��� ����� �� ������

0/�� ���� ��� ����� ���� � ��� ��#2��5�� ���� �� 3�,� � ����� ! ����

�� 3�,� ���% �� �� -���� � ��������� ��% ������� &�� ���� �� �����

���� � � �� ��� ���� ����� �� ����� �� �� ���

∂U

∂t+

∂F

∂x+

∂G

∂y+

∂H

∂z= J. G��9H

0��� ����� �� ���������� �� � ����� �������� � ����� ���� &�� ��� �����

�� 3�,� �� �� -���� � ��������� ��% ��� U % F % G% H ! J ����� �.� ��

���� � ���N

U =

ρ

ρu

ρv

ρw

ρ

(e +

V 2

2

)

F =

ρu

ρu2 + p − τxx

ρvu − τxy

ρwu − τxz

ρ

(e +

V 2

2

)u + pu − k ∂T

∂x − uτxx − vτxy − wτxz

G =

ρv

ρuv − τyx

ρv2 + p − τyy

ρwv − τyz

ρ(e + V 2

2

)w + pv − k

∂T

∂y− uτyx − vτyy − wτyz

9A: APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

H =

ρw

ρuw − τzx

ρvw − τzy

ρw2 + p − τzz

ρ

(e +

V 2

2

)w + pw − k

∂T

∂y− uτzx − vτzy − wτzz

J =

0ρfx

ρfy

ρfz

ρ(ufx + vfy + wfz) + ρq

(�� �������� F, G, ! H ��� ������� ������� �� 6���� � �������� � 3�,�% !

J ���������� �� ���� �� � �� ���% �� ���� �� ���� � ��� -������ � �� ���� !

�� �������� ���� �������� �� ��� ������ ������ 0� ������ U �� ������ ������

����� ��% ���&�� ��� ��������� �� U(ρ, ρu, ρv, . . .) ��� ��� ����� ���� ��#

��� ���������� ����� �� ����� ������� �� ����� �� � ����� (�� ��� �����

ρu, ρv, ρw ! ρ

(e +

V 2

2

)��� ������� ��� ����� � 3�,�% ! ρ, u, v, w ! e ��� ���#

���� ��� ����� �� � � ���� ������ ������� ��� ��� ����� �� � � ���% � ���

��� ����� � 3�,� �� ������ ����� ��% ���� � ���N

ρ = ρ

u =ρu

ρ

v =ρv

ρ

w =ρw

ρ

e =ρ(e + V 2

2

− u2 + v2 + w2

2

���� �� 3�,� ���% �� ����� �� G��9H �� �� � ���% �/����� &�� ��� ��������

������� ��� � ��� .����% &����� ���� � ���N

A.2. FORMA DE LAS ECUACIONES DISEÑADAS PARA CFD 9A<

U =

ρ

ρu

ρv

ρw

ρ

(e +

V 2

2

)

F =

ρu

ρu2 + p

ρvu

ρwu

ρ

(e +

V 2

2

)u + pu

G =

ρv

ρuv

ρv2 + p

ρwv

ρ

(e +

V 2

2

)v + pv

H =

ρw

ρuw

ρvw

pw2 + p

ρ

(e +

V 2

2

)w + pw

J =

0ρfx

ρfy

ρfz

ρ (ufx + vfy + wfz) + ρq

0� � �% ��� ����� ���� �� ���� ����� � � ���� � ����� �� �� � ����� ��,�

� ����� � ��������� ��% 3�,�� � ����� ���� ��� ����� ��� ��������� ���� ��

�� ��� ���� �� ����� �� ��% � ��������� ��� ����� &�� ������� ������#

� ��� �� 3�,� ���� ��� ���� �� ����∂U

∂t= 0. 2 �� ����� �� �� ���������� ��

�� ���� �� � x, �������� ������� ����� �� ����� �� G��9H ����

9A= APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

∂F

∂x= J − ∂G

∂y− ∂H

∂z. G��;H

�&�� F �� ���� ���� �� �� ������ ����� �� ! ��� ������� ��� ����� �� ��#

��� ��� &�� ��� ���� ��� �� ��� ����+� ��� ����� �� � � �������� ��

���� -���� ��������� ��� � �� ����� ������� � F �� x + ∆x, � �� ����� ��

����� ��� �� x.

������ ������ ��� ��� ����� � 3�,� � F �� ��� � �� ����N

c1 = ρu

c2 = ρu2 + p

c3 = ρuv

c4 = ρuw

c5 = ρu

(e +

u2 + v2 + w2

2

)+pu

! ������� ��� ��� ����� �� � � ���% � ��� � 3�,�% � �� � �� ���� -����% ���#

� ��� �� ��� ��� ��� ��������� γN

ρ =−B ±√

B2 − 4AC

2A,

���

A =12

(c23

c1+

c24

c1

)− c5

B =γc1c2

γ − 1

C = −(γ + 1)c31

2(γ − 1)u =

c1

ρ

v =c3

c1

w =c4

c1

p = c2 − ρu2.

A.3. TEORÍA DE CHOQUE-EXPANSIÓN 9AB

���� *24>/ ,* +G2?6*"*H3/(-18(

����� �� 3�,� �������� �� ������� ����� ��� � M ≥ 1, �� -���� ��

������� &�� �� ���� ��� �� ����� ����� �� �� ������� �� � ��� �� ���� ��

��� ����������� ��� �� 3�,�� 2 ��� ���������� �+���� ��� ��� ������ �� ���#

����% �� ������ �� &�� �� ������ ���� ������ ���������% ! � �� �������

� ��� ����� �� ��� �� �� -����% � ������ &�� ��� ������ �� �������% ��

������ ��� �7���� ����������

121212 TTpp ��� ,,expansióndeEsquina

1

2

111 Tp ,,

11 �M

12 MM ��

�� �

Figura A.3-F1. Expansión supersónica

J� 3�,� ����� ��� ��&� �� �����/� � ����� ��� �����.� � ����� �����/�%

�� �/���� �������� ������� G��� �� .���� G��># 1HH� J�� D� �� ��� �� ����

������� �� ���� �% �� &�� ����� ��� � �� ����� � ���� � �� ��������% !

����� &�� -������� �� ���� �� � ����� (�� ������ &�� �� �������� �� ��

.���� G��># 1H �� ������ ������ � '��+ � ����������� ���� 0� ����&� �� �����

�� 3�,� ����� ������ �� ��� ��� �� ������ sen−1

(1M

)% ��� ����� �� � ��� ������

� ���� �����

0� 3�,� �������� �� �� �/���� ���D� �� -���� � �� ��&� �� �� ��������

J�� �/���� �� � ��� �� +��+� ��� �� ���� �D���� � �� ��� ���� �

'��+% ��� ������ -����� �� ���� �� � ���� � � �� ��&� ��% ���� �� �������

�� �� .���� G��># 1H� (� �� ���� ����� �� ���� �� � �/���� �� -���� ��

������ µ1 ��� �������� � �� ���� �� � � �� �� 3�,�% ! �� D�� �� ����� ��

���� �� -���� �� ������ µ2 ��� �������� � �� ���� �� �� 3�,� +�� � ���,��

9:? APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

� µ1 ! µ2 �� ��� ����� ������� � '��+% �.� �� ���

µ1 = sen−1

(1

M1

)! µ2 = sen−1

(1

M2

),

��� M1 ! M2 ��� ��� �D����� � '��+% ������� ����

0� 3�,� � ������ � ��� ��� � �/���� �� �� �������� ��% ! �+� ���

���� ��� &�� �� �D���� � '��+ �� ���������% ! &�� �� ���� ��% �� �������#

���� ! �� ��� � �� ��!��� ����������������% �� ��&� �� � �/���� ��

������� ���� �� �� ��� ���� ���� �� 3�,�% ��� �� &�� �� ���� ���� ��

����� � ������� 0��� � ������ � � ��� ������ �� �� ����� �� ����� �� �

��� ��� ����� � 3�,�% ! ���� ����� �� ������ ���� ������� ���� ��

0� ����� ������ �� �� 3�,� � ������ � ��� ��� � �/���� �� ���� ��

��� �� � �� ���� ����� ��N

f2 = f1 + θ, G��>H

��� f �� �� -��� �� � ������#'�!�� ! θ �� �� ������ � ��� �� �� �� 3�,�

������� �� �� .���� G��># 1H� ���� �� ��� ���-���� ������.�������% �� -��� ��

� ������#'�!�� ����� � M ! γ, ! ���� �� ���

f =√

γ + 1γ − 1

tan−1

√γ − 1γ + 1

(M2 − 1) − tan−1√

M2 − 1 G��@H

(� ����� �� ������ �� ������ ���� � ���� ���� M1 ���������� f1 �� � ����

�� ����� �� G��@H% �������� ���� �� ����� � θ ��% ���������� f2 �� � ���� ��

����� �� G��>H� 0� �D���� � '��+M2 �� ����� � ������ ��� G ����� �������H

�� ����� �� G��@H% ����� �� ����� � f2 � J�� ��� ����� � M2, ��������� �

�������� ��� ������ ������� � �� ���� ��% �� ����������� ! �� ��� � � ���

� �� ����� ����� ����N

p2 = p1

1 +[(γ − 1)

2

]M2

1

1 +[(γ − 1)

2

]M2

2

γ

γ − 1

, G��AH

T2 = T1

1 +[(γ − 1)

2

]M2

1

1 +[(γ − 1)

2

]M2

2

, G��:H

A.3. TEORÍA DE CHOQUE-EXPANSIÓN 9:9

! � �� ����� �� � �����

ρ2 =p2

RT2. G��<H

��� ��� ����� ���� G��>H � G��<H% ��� ���� �� �� 3�,� �� �� � �� ��� �

�/���� ��% &���� ������������� ����� �����

���� �� ���� � ��� ������ �� ������� �� ����� �� ������ �� �� ��� ��� ��

� ��� ��� ����� ��% �/����� &�� �� ����� �� G��>H ��� ���

f2 = f1 − θ.

���� ���� ���� &�� �� ��� �� �� � �� ��������� �� ���������� ���� ��

����� ��� �� �� ����� .���� J�� �� ��� ���� ! ��� ����� ����� �� ��

� ��� �������� ���� ���� � �/���� ��� ���� ������� ��% ���� ��� �����

����� �� �������� ��% ! ��� ��&� �� ���� ������� ����� ��� � ��� ���

� �+�&���

(� .���� G��># 2H ������� �� ������� �� �������� �� �� ��� �����.� �

�������� 0� GaH% ��� ��� � �+�&�� ������� �� ��� ��&� �� ����� 0� GbH%

�� ������� �� ���� ��� ������� � ��� ������

)( )(ba

� �

Figura A.3-F2. Compresión supersónica

��� �,�����% ���� ������ �� 3�,� ����� ��� �����.� � ������� G.����

G��># 2(b)HH% ���� �� ������ ����� θ = 10�% ��� M = 2 ! ��� γ = 1.4. 0�������%

f1 =

√1.4 + 11.4 − 1

tan−1

√1.4 − 11.4 + 1

(22 − 1) − tan−1√

22 − 1

= 26.3798,

9:; APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

��� �����%

f2 = 26.3798 − 10

= 16.3798,

! �� ���������� �%

M2 = 1.6514.

4������ � �������� *���� �+��� �� +�� ���� ��� ���� �������� ��� �

�/���� �� � ������� ��� 0� ��� ���� �� ��� ����� ���� ������� ���� ! ��

������% !� �� ����� �� -��� �� � ������#'�!�� ���� ������ �� 3�,�� 0� ��

.���� G��># 3H �� ������� �� ���� � �� 3�,� �� � ���� �� ��� ��&� ���� (��

���� � �/���� �� �� ����������� ! ��� ����������� ��� � '��+ �,�� � ���

������ �������

Flujo

simpleOnda

simpleOnda

simplenoRegión

positiva)stica(caracterí

negativa)stica(caracterí

Figura A.3-F3. Regiones no simples

A.4. ECUACIONES EN DIFERENCIAS FINITAS 9:>

���� �+6/+12(*- *( ,1D*4*(+1/- 7(1)/-

(�� ����� ���� � ��� ��#2��5��% �� ��� -����� ���������% �� �� +�� �� #

� �������� ������ �������M ���� �� +�� �������� �� ����� ���� �������% ���

�� ������ ���� ������������ 2 � �������% �D� ����� �� �� � ��� ��� ��#

��� �� ������ ��% �� ��� ��� +����� ��� -��� �� &�� ����/ �� � �� ����� ��� 0���

-��� �� �� ���� ������� �� �� � ��� �� �������� � -����� �� .� ���% � ���

&�� ������� ��� �� ���� ��� (���+�� 0����� ������������ &�� �� �����#

� ���� ��������� ��� ����� �� ����/ ��� �� � ���� ������ ������� &��

�� ����� ���������� �� ��� �����������

0����� � �/������� �� �������� � -����� �� .� ���% ������������ D� �

���� �������� ����� ���� -����� ���� �� -���� ����/ ���� 0� �������� �

-����� �� .� ��� �� �/�� ������� ���� �� ���� �� &�� ��� -��� ����% �����#

����� �� ��� ����� ���� -����� ����% ������ � �� ��� ������ ���� ��

��!�� �D���� � ��� ����� �� ������� ���� �� �������% ���&�� ������� ��

.������

2�������� &�� �� � ��� ��� ����� �� -����� ��% �� ���� �� ���� ��������

�� �� ���������� �� ����� � ���� ��� R2� (� �� ��� ���� �� � ��� -��� ��

� �� ��� �����% �������� � ��� � �����% �� �� �� ��� ������ .,��� ��

���� ��� ����� C�������� &�� �� �� ��� �� �.�� ���� �� ��� �� � �� �����

�� ��������� � �� -��� �� ����� �� ��������� � �� ��� ����% ����� ����

D�� �� � ��� � ����� 0������� ���� ��� ���� ����/ �� � �� �� ���% ����� ��

��������� � �� ��� ���� �� ��.� ��������� ��&��)�� 2 ��� �� ��� ���� ��

&�� �������% �� ���� ��!� ��� ��� ����/ ��� �� � ��� ����% �� ������� ���

����� �� &�� �� � � �� ������� ��� � ���� ����� �� �� �� ������ ���� ����� ��

�� -����� �� .� ����

0� �� .���� G�#@� 4H% ���� ������ �� ����������

R = {(x, y) | a ≤ x ≤ b, c ≤ y ≤ d} .

2 &������� ������� � ��� ����� ����������� ����� ���� ����� � � ����� ��%

��������� �� ������� ��� � ��� n ! m% ! �.� ��� ��� ����)�� � ��� ����#

������

∆x =b − a

n! ∆y =

d − c

m.

9:@ APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

���� ��� �� �������� [a, b] �� n ������ ������% � ���� �� ∆x ��� ���% !

���� ��� �� �������� [c, d] �� m ������ ������% � ���� �� ∆y ��� ���% ���#

� ���� ��� �� �� ���������� R, ������ ������ ���� ����� ! +�� �������� ���

��� ������ ��� ��������� (xi, yj), ���

xi = a + i · ∆x, ���� ��� i = 0, 1, ..., n, !

yj = c + j · ∆y, ���� ��� j = 0, 1, ..., m

(�� ������ y = yj ! x = xi �� ������ ����� �� ���� ! ��� �������� ����

�� ������ ����� �� ���� ��� ��� ����� � �� (xi, yj)% i = 1, 2, ..., n − 1 !

j = 1, 2, ..., m − 1% �� �� ���� �� � �� �����% �� ���� ����/ ��� �� �� ��� ���

-����� �� .� ����

ax =0 1x 2x 3x 4x b

cy =0

1y

2y

d

y

x

Figura A-4.F4. Malla rectangular

*� ��� �� ������ 2�� D �� ������,���� � R2% ���� � �� �������� �

�� ���� ��% ����/� ! ��������� 2� ���� ��0/../ � ����� d% � �� ���,����

� ������ M ������ � �� D% &�� ��� �-��� ��� � �� ����� ��� � ����N

9� M �� �� ���,���� .� ���

;� ���� ��� �������� α � �� �������� � D, �/ ��� �� �������� β � ��

����� M ��� &�� �� ����� � ����� α ! β �� ����� � ���� &�� d�

>� d �� �� ��� �� ����� � ����� ������&� ��� �� ������ � M.

���� ��� ����� �����������% �� ���,���� � ������ � �� ���� �� ���

A.4. ECUACIONES EN DIFERENCIAS FINITAS 9:A

M = {(a + i · ∆x, c + j · ∆y) | 0 ≤ i ≤ n% 0 ≤ j ≤ m} ,

��� �� ����� d ���� �� ���

d =

√(∆x)2 + (∆y)2

2.

2�� (a + i · ∆x, c + j · ∆y) �� ����� ��� ���� � �� �� ���� �� �� ����������% �-���� &�� 0 < i < n% 0 < j < m. � ���� ���� �� �� �������� ��� ���� ��� ����

����/ ��� ���� ���� �� �� ��� �� ���� �����% ��� �������� � �� �� ����

��� �����

(∂f

∂x

)=

f(a+(i+1)·∆x,c+j·∆y)−f(a+i·∆x,c+j·∆y)∆x +8(∆x) GH

f(a+i·∆x,c+j·∆y)−f(a+(i−1)·∆x,c+j·∆y)∆x +8(∆x) GH

f(a+(i+1)·∆x,c+j·∆y)−f(a+(i−1)·∆x,c+j·∆y)2(∆x) +8 (∆x)2 GH

0� �� �/���� �� ����� ��% GH �� �� ��������� � ������ ��������% GH �� ��

��������� � ������ �������% ! GH �� �� ��������� ��������

2�� ����� ��� D� ��� ���� ���� ��� ���� ��� ���� � ���� � ������ �� ��

�����% ���� �� �� ��� ���� &�� ����/ �� �� �� ��� �������� � x% �� �� �����

���� �% ������ �� ������ � �� �����% � -���� &�� �� ����� �� �������

� f �

2� ���� ���� � �

f (i + 1, j) − f (i − 1, j)2(∆x)

G��=H

�� ����� �

f (a + (i + 1) · ∆x, c + j · ∆y) − f (a + (i − 1) · ∆x, c + j · ∆y)2(∆x)

.

2 ��� .���� �D� ��� �� ����� ��% �� ����� �� G��=H �� ���� ���� � � ����

fi+1,j − fi−1,j

2∆x

9:: APÉNDICE A. LAS ECUACIONES DE NAVIER-STOKES PARA CFD

��� �,�����% �� ����� ����/ ���

(∂u

∂x

)!

(∂u

∂y

)����N

(∂u

∂x

)≈

ui+1,j − ui,j

∆x��������� ����� �������

G9�� ���� �������� � xH

ui,j − ui−1,j

∆x��������� ����� ���!�

G9�� ���� �������� � xH

ui+1,j − ui−1,j

2∆x��������� �������

G;� ���� �������� � xH

(∂u

∂y

)≈

ui,j+1 − ui,j

∆y��������� ����� �������

G9�� ���� �������� � yH

ui,j − ui,j−1

∆y��������� ����� ���!�

G9�� ���� �������� � yH

ui,j−1 − ui,j−1

2∆y��������� �������

G;� ���� �������� � yH

0� ��������� ���� � �� -����� � �� �� ���� � ����� �� ���D� �� ����%

���&�� � �� ������� � ��� �/���� ���� �� -����� �� .� ��� ������ � � &� ���

����� ���� �� ��� �,�����% �� �� ��� ��� ����/ ��� ��� �� ��� �������� �

x ��� ��� -����� � �� ���� � ��� � ��% �� ������ � �� ����� &�� � ����

�� -���� (b, c + j · ∆y)% ���� �� � � &�� �� ������� &�� ����� ������ &��

�� ���� �� ��� ��������� � �� �����% � �� &�� � � &� ��� ��� ���������

�� ����������� $������ �� ���� �� ��� ����/ ��� �� ��� ��� -����� �

�� ���� � ����� �� �� ������ � �� -���� (a, j · ∆y + c)% ���� ��� �� � ���

����� ����� ��� 2 � �������� �� �� ��� ��� ����/ ��� ��� �� ��� ��������

� y ��� ��� -����� � �� ���� � ��� � ��% �� ������ � �� ����� � �� -����

(a + i · ∆x, d)M � ������� ��� ��� -����� � �� ���� � ����� ��% �� ������ ��� ����� � �� -���� (a + i · ∆x, c)�

��F� �� �

%���� �� ����

�� ���� ��� ������,�� � ������ �� ������� &�� �� �� � ��� �� �� ������ �%

JAVA �� �� D� �� &�� ������� ��� �� � � ��� � ���������� � ���� �� ����� ��

� ��� ��� ���� ���������� 0� ������,� � ��������� �� JAVA% ����� ��� 2��

' ����!�����% �� ����� � �� ���������� JAVA% �� ���� � ��� �� ���� ����

&�� ������ �� �� ���� ��� ��&� �� � ��������� � JAVA� 2 �� ��&� ��

���� ������� � ��� ��-�4���% �������� �� �� �� ��&� �� � ������ 0� �� ��

������� ��� �� ���� ���� � JAVA �� ������ -�� ������ ��������% !� &�� ��

���� �,������ � � �� .��� �� �� ����&� �� �����-���� ��� �� ��&� �� �

JAVA �� ��������� ��������

0� ���� ���� �� �� �/�� ��� ���������� ��� ����� ���� &�� JAVA ������#

� ��� ���� �� ����� �� � + ��� ! �� ����,� � �����% ��� �� &�� �� �����������

�� �������� ;� �����% ��� �� ������ �� � �,���� .��� &�� �� ��� � + ��� �

�,���� ��% ��� �� ����� ��� � ���� � �����,��% �� ��� �.� ���� ����#

������ �� �� ����� � ��������% �� �������!� �� �������� � #+ ��� ����

�������� �� ����� ��

X(t+1)i =

X(t)i−1 + 2X

(t)i + X

(t)i+1

4.

9:<

9:= APÉNDICE B. HILOS EN JAVA

���� 4*/+18( ,* G1.2-

J� + �� � �,���� �� ���� ��� � ��� ����� ������� ���� �� �������% !

��� �� �����% ��� �D�� ���� + ��� � �� ��������% �,��������� ����� � ���

������ � � �� ��&� �� � JAVA% ����� ���� ������ ���� � -����� ��� ��

�������� ����� �� � ����� ������ �� G��� �� .���� G��9# 5HH�

MemoriaGlobal

Hilo 2

Hilo 3

Sistema

OperativoAplicación 2

Aplicación 1

Variableslocales

Variableslocales

Variableslocales

Máquinade JAVA

Hilo 1

Figura B.1-F5. Modelo de hilos

(�� + ��� � ���� ��� � �� ����� ����������� ���N

9� ��� + �� ��� ���� �� �,���� �� �� ��� �� ��� �� � �� ����.� �� ����

�� + �� �� �� ��� �� ��������% �� �� ��� �� �� �� ����� main()M ���� ��

����� � ��� + ��� �� �� ����� start()�

;� ��� + �� ��� ���� �� �,���� �� � �� �� �� �� ��� ������� � ����.#

� � ! �������

>� ��� + �� �,����� �� �� �� ����� ��������� � ��� ����� + ��� �� ��

���������

@� 0/ ���� ��� �� ����� ���� ���� �� ����� ��� �� ! �� � ����� ��� �� �

��� + ����

B.1. CREACIÓN DE HILOS 9:B

������ 4*/+18( ,* G1.2- 324 0*,12 ,* ./ +./-* G4*/,

(�� + ��� ��� ������ &�� �� ����� �,������ �� ��������% ����� ������ ���

� ��������� �� �� �,�������� ! �� �� �� �� ����� � ���D� ��������� 0� API

� JAVA ������� ��� �� �� ��&���� java.lang �� ����� Thread% ��� �� &�� JAVA

� ������� �� ������� ��� ����� �� + ��� �� �� ��&���� �� �� ����

7����� �� � �� ���� �� ��N

public class Iterativa{

public void run(){

for(int i=0; i<100; i++)

System.out.println(”Mensaje:”+i);

}

}

(� ����� Iterativa � ��� �� ����� &�� ������� ��� ����� 9?? �����% !

���� ��� �,������ ��� �� applet � �� � �� ���� -����N

import java.applet.Applet;

public class AppletI extends Applet{

public void init(){

Iterativa oc = new Iterativa();

oc.run();

}

}

2 ������ ���� �� ����� Iterativa ! �������� �� ����� run()% ���� ��

������� ������� ������� G��� �� .���� G��9# 6HH�

9<? APÉNDICE B. HILOS EN JAVA

Tiempo

Applet ejecutandométodo run()

Applet ejecutandométodo init()

Hilo del Applethaciendo otras tareas

Figura B.1-F6. Ejecución secuencial

2 &������� &�� �� ����� run() �� �,����� �� �������� ��� �� �����

init() ! ����� ������ �� applet% ������� &�� �� .��� ������� ����� Ite-

rativa ���� &�� ��,���� ������ � ���� � � ����% ����� ��� �,������� ��

��������� ���� ��� �-���� �� ����� Iterativa � ��� &�� +����� � �� ����� ja-

va.lang.Thread�

public class Iterativa extends Thread{

public void run(){

for(int i=0; i<100; i++)

System.out.println(”Mensaje:”+i);

}

}

(� ����� AppletI ��� ��� �� .��� ���� � ���N

import java.applet.Applet;

public class AppletI extends Applet{

public void init(){

Iterativa oc = new Iterativa();

oc.start();

}

}

B.1. CREACIÓN DE HILOS 9<9

0� ���� ������ ���� �� �� applet% �� +� ���� �� oc.run()% ���

oc.start()� 0� ����� start() ��������� � �� ����� Thread% ! ���� �� + �� �

�,���� �� &�� ������ � � � �� ����� ����� �� ����� run% �� ���� �� ����

�,������ �� �������� ! &�� �� .��� ���% ������!� �� �,���� �� �� + �� G��� .����

G��9# 7HH�

Tiempo

Applet ejecutandométodo start()

Applet ejecutandométodo init()

Hilo del Applethaciendo otras tareas

Applet ejecutando tareasinternas del hilo

Ejecución delmétodo run()

fin

Figura B.1-F7. Ejecución paralela

0� � �� ���� �� �� ���� � ��� + ��� � �,���� ��% �� �� � � ��� ��,����

��� ��� ��� �� ���� � �����% ! &�� �� ����� �,������ �� ���������

public class SimpleThread extends Thread {

private int countDown = 5;

private static int threadCount = 0;

private int threadNumber = ++threadCount;

public SimpleThread() {

System.out.println(”Making ” + threadNumber);

}

public void run() {

while(true){

System.out.println(”Thread ” +

threadNumber + ”(” + countDown + ”)”);

if(-countDown == 0) return;

}

9<; APÉNDICE B. HILOS EN JAVA

}

public static void main(String[] args){

for(int i = 0; i<5; i++)

new SimpleThread().start();

System.out.println(”All Threads Started”);

}

}

(� �,���� �� �������� �� �� �� ����� ��% �� ���� ����������� �� �� �#

����� � �� � �� ���� ������N

Hilo principal ejecutándose

Creación del primer hilo

Creación del quinto hilo

Creación del cuarto hilo

Creación del tercer hilo

Creación del segundo hilo

Tiempo

Figura B.1-F8. Diagrama de ejecución paralela

0� �������� &�� ���������� �� .���� G��9# 8H ���� ����������� � -�#

����� ������ �� ������� �� ��� �% !� &�� �� �� ���� ����� ��� �� ����

� ��� ����� ���� �� ��������% �� � � &�� ��� + ��� ���� ��� ��� ���� ��#

�����% ����� �� �� �� � ��� �����-���� �� ������ � �,�������� ���� �� ���

��� � �� ���% ��� �� &�� ���� �������� � ��� ��� ���� ���� � � ��� ��

��� ����% ! �� ������ � �,���� �� ��� � ��� ��!�� �������� �� � ��

��������� �����

0� ��� ��� ��� �� ���� + ��� �� �� ��� ��� �� ��� ��� �+� �� ������#

��� ���� �� �,���� ��% �� � � &�� �� �������� �� ������ �� &�� �� � ���#

�� ������ �� �� � ���� �� ������� ���� �� +��+� �� ���� + ��� �� JAVA ��

B.1. CREACIÓN DE HILOS 9<>

���� ���� � �� �����-����% ���� +�! -����� ��% �� ���� ����� ����� ���

�����-����� Windows ! Solaris% �� �� ������ � ���� ���� ��� + ����

0� ��� ���������� ���� � >; � �� � JAVA ���� Windows% ��� + ��� ��

����,�� ��� ��,��� � � ����% ���� � �� .�� &�� � ��� + �� �� �� ������

��� ���� � � � ��� � � ���� G�������H ���� �,�������� �� �� ���������%

! ����� �+� � ���� +� ��������� �% �� + �� � ��� &�� ������� � ������ ����

��� ���� + ��� � ���� �� �� � �������+�� ��� ������� ��� � ���� ��

������� � �� ��� �� ����� � ������ G����#��� �H% ��� �� &�� �� �����-�����

Windows �� + �� �� �,���� �� ���� ��� �����,�� ��� ���� � ���� �� �� �%

� ������ &�� �� Solaris �� + �� JAVA ���� ���� ��� �����,�� ��� ���� �

��!�� �� �� ��

�� �� � ���� ���� �� &�� ��� ��� ��� �� ���� + ��� �� �������� � ��#

���� �� ��� �� � ���� � �,���� ��% �� -������� ���������� ���� � JAVA%

� +��+� �� �������� JAVA � ����&� �� �������� ���� + ��� �� ���� ���#

������ � ������ �� ��� �� �� � ��� �����-����% �� � � &�� �� � �����

������ �� ���� �� ���� ��� � ���� � ��������� � �� + �� &�� � ����% �#

��� ��� � �� ����� � �����,� &�� ����� �� ��� �������% ! ���&�� ��

�������� ���� + ��� ���� ����������� � �� ��� ������ �� �,���� ��%

� ����� �������� �� �������� .��� ��������

������ 4*/+18( ,* G1.2- 324 0*,12 ,* ./ 1()*4D/= �6((/5.*

8��� ����� ���� ����� + ��� �� JAVA �� ��� �� � � �� ����-�� Runna-

ble% ��� �� &�� �� �� �� �� ��� � �� +����� �% �� &�� �� -�������� �� �������

��)��% �� � � &�� �� +����� � �� ���� ���� �� ������� ���� �� � ��

������� ��� ��#����� �� ��� �� � ������% ! �� � ����� �� ����� �� ���� ��#

������ ���D� ��������% ��� �� &�� ���� ��� �� � ��� ��� ����-�� &�� ���� �� ��

����� �� � + ��� �� JAVA, � � ���� ���� �� �������� � +����� ��

(� ����-�� java.lang.Runnable �� �.�� ���� � ���N

public interfaz Runnable{

public abstrac void run();

9<@ APÉNDICE B. HILOS EN JAVA

}

(� ����-�� Runnable ���� ��� ��������� �� ����� ��������� run() &��

��� ��� ������� (� ����� Thread ��������� �� ����-�� C�������% ��� ��

&�� �� +����� � Thread ���� �� �� ��������� �+� ����-���

0����� � �� ������� �� �� �� &�� �,���� .�� �� ��� � �� ����-�� C����#

���% �� � ���� �� ����� �� �,����� ���� �� ����� �� � � ��� + ��� � �,���� ��N

public class SimpleThread implements Runnable {

private int countDown = 5;

private static int threadCount = 0;

private int threadNumber = ++threadCount;

public SimpleThread() {

System.out.println(”Making ” + threadNumber);

}

public void run() {

while(true){

System.out.println(”Thread ” +

threadNumber + ”(” + countDown + ”)”);

if(-countDown == 0) return;

}

}

public static void main(String[] args){

for(int i = 0; i<5; i++)

new Thread(new SimpleThread()).start();

System.out.println(”All Threads Started”);

}

}

0� ���� ����� ���� �� �� ��������% ����� ����� ����� ��,���� � � �� Th-

read ������ �� �� ����������� ��-����� �� � � �� Runnable� 0� �����������

Thread (Runnable target) ���� �� ��,��� Thread ���� �� ��� �� ��,���

&�� ��������� �� ����-�� Runnable�

B.1. CREACIÓN DE HILOS 9<A

JAVA ������� ��� �� ������� � ����� ��������� + ����N ��� �� ����� �#

�� � +����� � ! ��� ����-��� ��� ����&� ��� � ��� �� ����� �� ����� ��,����

��� ��� &�� �� �,������ �� ��������� J� � ��� ����&� ��� � ��� �� ����� ����

��% �� �������% ��� ���-����� � �� �����������

������ 1+.2 ,* 91,/ ,* 6( G1.2

(� ����� Thread � ��� ��� �� �������������� 0� ����������� public Th-

read(String threadName) �������!� �� + �� ��!� ������ �� ����� .���

��� �� ����� threadName� 0� ����������� Thread()% �������!� �� + �� ��!�

������ �� Thread ���������� ��� �� �� ��% ��� �,����� Thread1% Thread2%

���% Threadn�

0� �� �� &�� ���� �� �� �����,� � �� + �� �� ������ �� �� ����� run()� 0�

����� run() ���� �������� �� ��� �������� � Thread � � �� �� �� ��,���

Runnable�

J� �������� � � � �� �,���� �� � �� + �� ������� �� ����� start()M

� �� ���% start() ����� �� ����� run()� J�� ��� &�� start()������� ��

+ ��% �� ������� �� ������� �� + �� �������� 0� ���� ������� �� + �� �������

�� �,������� �� �������� ��� �� + �� � � ��� 0� ����� start() ������ ���

�/���� �� � ����� ����� GIllegalThreadStateExceptionH � �� + �� !� ����

�� ����� � �,���� ���

0� ����� ����� �� sleep �� ����� ��� �� ��������� &�� ����� .�� ��

� ���� &�� �� + �� &�� �� ���� �,������� ��� ��� �M � ������ �� + �� ���#

�� �� ���� �� ��� �� ���������% ! ����� + ��� ����� �,��������� 0��� �

������� � � + ��� � ��� ��,� �� �� � �� &�� �����% � �,���������

0� ����� interrupt() �� ����� ���� �������� � �� + �� ����� �� ��#

������� �� �� ����� � ������ � � ���&���� 0� ����� ����� �� interrupted

������� ��������� � �� + �� +� � � �������� �% ! ����� �� ���� ������� ��

0� ����� isInterrupted �� � ������ �% ! �� ������� ���� ����� ��� �

�� + �� &�� �� �,����� +� � � �������� ��

0� ����� suspend() ������� �� �,���� �� � �� + ��� 0� ����� resu-

me() ������ �� �,���� �� � �� + �� ������ �� J� ������ ��� ������� ��

9<: APÉNDICE B. HILOS EN JAVA

+ �� &�� �� ���� ������ � �� ���� �� ���� � �,����������

0� ����� stop() �� ��� �� �,���� �� � �� + �� ! ����� �� ��,��� Thread-

Death G������ � + ��H� 0��� ����� �� �������� ��� ����� ���� � ���� ����� �

! ����� �% !� &�� � �� + �� ��� ���� ��� ������������ �� ��� ��� ��

��� ��)� �� ���������

0� ����� isAlive() G���� ��� ��H ������� ��������� � �� +� ������

start() ���� �� + �� ��% ���� �D� �� ���� �� �� �,���� ���

0� ����� setName(String) ��������� �� ������ �� + ��� 0� ����� get-

Name() ������� �� ������ �� Thread� 0� ����� toString() ������� ���

����� &�� ���� ��� �� �� ������ �� + ��% �� �� �� � ! �� ����� � + ����

nacido

listo

enejecución

muerto

suspendidoen espera dormido bloqueado

sleep suspend

resume

stop finalizo

ejecución

start

expiración

de cuanto

waitsolicitud de E/S

despachar

expira intervalo

de sueño

notifynotifyall

completar E/S

Figura B.1-F9. Ciclo de vida de un hilo

J� + ��% ���� ���� ����� �� ��� � ��� ������ &�� �� �������� �� �� .#

���� G��9# 9H� 2� ���� �� � &�� �� + �� &�� �� ����� � ����� �� ���������

�� �� ����� �����% ! ��������� �� ��� ����� +���� &�� �� ����� �� ��#

��� start() �� + ��% �� &�� +��� &�� �� + �� ���� �� ����� � ������ 0� + ��

� ��� ���� �� �� � &�� �� ��������� �� �� ����� �����% ���� �� ����� ��

�,���� �� ����� �� � ����� �� �� ��� � ���� � �������� ����� J� + �� ����

�� ����� ������ ����� ���� �� �� ����� run() � ����� �� ����� ��

B.1. CREACIÓN DE HILOS 9<<

����� stop()M �� ���D� ������� �� � ����� ������ � ��� �������� ��

+ �� �������

J� + �� �� �,���� �� ���� �� ����� ��������� ����� �� + �� �� �� ���

��� � �� � ������ � ��� �� J� + �� ���&���� &��� � ��� ����� �� ������

� ��� � &�� ������ �������� ���� ��� J� + �� ���&���� �� ���� ����

� ���� � �������� ���� ���&�� +�!� ���� � � ��

����� �� ����� �� ����� sleep[()|(long)] � �� + �� � �,���� ��%

�� + �� ���� �� ����� �������� J� + �� ��� � &��� � ��� ����� �/� ��

�� � ���� � ���� � � �� ����� J� + �� ��� � �� ��� �� ������� �

�������� �����

����� �� ����� �� ����� suspend() � �� + �� �� �,���� ��% �� + ��

���� �� ����� ���������� J� + �� ������ � &��� � ��� ����� ���� + ��

����� �� ����� resume G�������H� J� + �� ������ � �� �� � �� � ���� �

�������� �����

����� �� + �� �� �,���� �� ����� � wait[()|(long)]% �� + �� ���� �� ��#��� �� ������% ��� ������ �� ��� ���� ���� �� �� ��,��� ������.�� ���� ��

���� ����� wait� 0� �� ��� + �� � �� ���� � ������ ���� �� ��,��� �� ���#

� ����� &��� � ��� ����� ���� + �� ���� �� � ��� ��,��� �� �� ��� ������

notify G��� .���H� $��� ��� + ��� � �� ���� � ������ ���� �� ��,��� ��%

&���� � ���� ����� ���� + �� ���� �� � ��� ��,��� �� �� ��� ������ no-

tifyAll G��� .��� � ����H� 2� ���� ������ �� ����� wait ����� .���� ��

�D���� � � � ������� &�� �� + �� ������ �� ������% ! �� ���� ���� ����� ��

�,���� �� ��� ��� ��������� � �� ����� � � ���� � � ������ � ��� ������

notify � notifyAll% �� &�� ������ �� �����

������ �41241,/,*- ,* G1.2-

$�� ��� ��� �� JAVA �� ���� + ��� ! �� ����� �� ������� � ���� + ���%

��� ��� �� �,����� �� ��&� �� � �����% ���� ��� �� �,����� �� ����������

� ������ ! ��� � ����� �� $�� + �� � ��� ��� �� �� � &�� ���� �����

������� ������� �� �� �������� � 9 � 9?� 0/ ���� ������� �.� �� ���� Th-

read.MIN_PRIORITY G�&� ���� � 9H% Thread.MAX_PRIORITY G�&� ���� � 9?H !

9<= APÉNDICE B. HILOS EN JAVA

Thread.NORM_PRIORITY G�&� ���� � AH� $�� + �� ����� �&� ��� �� �� �� �

�� + �� &�� �� �����

���� �� ,�% ������� �����-����� � JAVA ����,�� ��� + ��� ��� ��,���

� � ����% ! ����� ��� 2 � ��,��� � � ����% ��� + ��% � �� ���,���� � + ���

��� �� � ��� �� �� �% �� �,����� +���� ���� ���� ��� ��� ��,��� � � ����%

��� + �� ��� �� �� ����� ����� � � ���� � ���������% ������ �������%

������ �� ���� ��� + �� ���� �,��������� �� �/� ��� �� �������% ��� &�� ��

+ �� +�!� ��������� �� �,���� �� � ��% �� �� &� ���� �� ���������% ! ���� ��

�� ��� �� � �� ���� + �� ��� �� � ��� �� �� �% � +�! ��� � ����

(� ����� �� ���� .���� � JAVA �� �������� �� + �� � ��/ �� �� �� �

�,��������� �� ��� ������� !% � �� ������ ��� ��,��� � � ����% ��������

&�� ��� �� + ��� ��� �� � ��� �� �� � �� �,������% ��� ��� ������ ��

�������% � �� ��� �� ����� � �������

������ %1.2- /*02(

J� + �� ����� �� �� + �� &�� �� �,����� �� ����.� � � ����� + ���� (��

+ ��� ����� �� �,������ �� ������ �����% �� �� �% ����� +�! � ���� �

��������� ���� ��� &�� � ���� ������ �� ����� � ����� J� �,����� �

+ �� ����� �� �� ���������� � ������ � �� ��&� �� � ������

��� ������ � �� + �� ����� ��� �� ������ �� ����� � �� ����� Th-

readsetDaemon(true)� 2 �� ��������� �� -����% &� ��� �� � &�� �� + �� �� ��

������ J� �������� ���� ���� � ��� ������ � + ��� ����� ! ������#

� ������% ! .��� �� +���� &�� ���� ��� + ��� ������� ������ +�!�� ���� ���

�� �,���� ��% ���� ���� .��� ��� �� �,���� �� ���&�� �/ ���� + ��� �����

�,����������

B.2. SINCRONIZACIÓN 9<B

���� �1(+42(1=/+18(

(� � ����� ��� �� ���� ��� �� ����� � � �� ��� &�� �� � ��� + ��� ������

� ������ � �� ������� �� � ��� � ����� ��� �,�����% � �� + �� ������� �

���� � � �� �� ���+ ��% ! ���� + �� ����� ��� �� � ��� � ���� ������� � ������

�+� ���+ ��% �� ����� ��� ��� � ���� �� �� ������ 8��� �,����� �� �� &��

�� ���� �� ��&��� � ���� � � ����� ��� + ��� �� ������ ����� �� + �� ���

������� � &�� ����� ��������� ��� ���� &�� �� ��� � ���� ���� + ��� ����

����� ���� ����� ��������� �� ��������� �� � ����� ��� �� � + ����

(�� ���� ���� � �� �� � �� �������� &�� ������ � �� � ��� �������

G�� � ��� ��,���% �� ���+ �� �� ���% ����H �� ���� ��� ���� ���� ���� ����

���� � ����� ��� �� � ��� + ���% +�! &�� �� � ��� �� �� .���� synchroni-

zed �� �&������ ������ �� ��,��� G������������ ��� ��H ��� ��� &�� �����

����� ��� � ���� ���� ���3 �� ���% � ���� -���� �� ��&� �� � JAVA ���&���

G���� � �� ���&���H �� ������� � -���� � ����� ��� �� ��� &�� ���� + ��

���� +���� ��� � ���� �������� 0� � �� ���� �� �� ������� �� ������� ��

� �� ����� � ����� ����

public synchronized void metodoSincronizado(){

//...

}

(� � ����� ��� �� ���� ��� &�� �� � ��� + ��� ����� �,������ �� �����

�� � ��� � ����% ���� �� �� � &�� �� ���,���� � ��� ����� &�� ����� ���

�� ����� � �� ��,��� ���� �� .���� ��� �� ���� + ���% ��� �� &�� �� �����

����� �� � ��)� &�� ��� ��� ����� � ����� �� ������� ���� �� ����% �

���� -���� ���� ������� ����� ���� � ������ � ������ � �� �����% ��� ������

����� � ����� ������

0� ��! ��������� ����� �� ������ &�� � �� � ����� ��� ������� ������

� �� ��,��� ���� ����� ��% �� �������� ���� ������� ��������� �������#

��� (� ����� �� &�� ��� ������ �� � ����� ���� ����� ������ � ��������

� ��� ��� ����� � �����% ������� �� ���&��� �� ��,���� 2��� ��� ������

� ����� ���� ���������� � �� ��,��� ���� ���&����� ��� �� �����% ����

��� ������ &�� ������ � �� ������� ������� � ���� ��� �������� ����

� ����� ����� �� ���� -����% � ���D� + �� ����� � �� ����� ��� �������%

9=? APÉNDICE B. HILOS EN JAVA

�� ��&� �� � JAVA ���&��� �+� �������% � -���� &�� �� ����� � + ��� ��

����� ������ �� � ��� +���� &�� �� �������� �� ������� ���� �� � ���� #

��� �� ������ ���&���� �� ������� � �� .�� &�� ����� ��� ������� �� �����

������ � ������������� �� � ��� ������ � ����� �����

0/ ���� �� � ����� � ���&��� � �� �������� 0� �� ���� �� � � ��� � ��#

,����% � ������ &�� �� ������ �� � � ��� � ������� 0� �� ���� ���D� �����

��� ������ � ������ �% ! �� ���� ��� �������� ��� ������ ���� � ����#

� ����� ����� �� + �� �,����� �� ����� � ����� ��� ����� �� ��,���% ��

� ����� ���&��� �+� ��,���% � -���� &�� � ���� + �� ������ �,������ ���D�

����� � ����� ��� � ��� ��,���% ���� ������ + �� �� �������� � �� ������

+���� &�� .��� �� �� ����� �� ! � ���� ��� �� ����� �� ��,���� 2 �/ ���� ��� ��

��,���� �� ��� � ��� �����% ���� ��� ���&���� �� ������� � � ��� � ��,���%

�� ��� ��� ����� �� ���� + ��� �,������� ������ ����� ������ ��,���� �

�+� ������

0� ���&��� � �������� � � ��� � ������ ���������� � ��� ������ ���#

� ���� ����� ���� 2 �� ���� ���&���� �� ����� ����� ���� ��� ��,����

������ � ��� �����% �� ������� � ������� ���� ����� ���� synchronized

static�

(� � ����� ��� �� ���� ��� ��������� �� ! ������� �������� J� + �� �����

���&���� �� ����� ��� ������� � -���� ��.� �% �� ��� &�� �� ���#

�� � ��� + ��� ���� ���� �� � ���% ��� ���������� � +���� &�� �� � ��� ��

� ����� ��� �� ���� ��� ��� ���� �������� ������� ��

0� � ��������� ����� �������� &�� � �� + �� �,����� �� ����� � ����� #

��� � �� ��,���% ���� ��� ������ � ����� ���� �� ��,��� ������������

���&����� ������ �� � ���� � �,���� �� &�� ��� �+� �����% ���� ��� ��

&�� ����� + ��� �� ����� ������ � ��� ��,��� ������ ��� � �����

0� ����� wait � �� ����� java.lang.Object +����� ������� �����#

�� ��� ���� ��� ��,����% � ���� �� ���&��� �� ��,��� ������� ��� ��� ������

� ����� ���� ! ���� �� ����� � ������ �� + �� � �,���� �� &�� �� �����% ���

�� &�� �� ��� ��� ���� ���� �� � ���� ��� ��,��� � ������ � ������ � ����� #

����� 0� ����� wait �� ��� �� + �� &�� �� ����� +���� &�� ���� + �� ����� ��

����� notify() � notifyAll() �� ��,��� � .��� �� �� � ���� � ��� ����

��������� �� ����� wait. �� .��� ��� �� ����� � ���&��� ��� �� � �

B.2. SINCRONIZACIÓN 9=9

wait, �� ��� ��� ���������� ��� ������ �������� ��� ��� ������ � ����#

� ����� 0� ����� notify(), &�� ���� �� ��������� � java.lang.Object,

����� ��� ��)�� � ���� � �� ��&� �� � JAVA &�� ���� ��� ��� �� �� ����

� ��� + ��� &�� �� ���������� ���&����� �������� ���� ������ �� ��,�#

�� ���&����� 0� ����� notifyAll() ����� ��� ��)�� � ���� ��� + ��� &��

����� �������� �� � ����� �� �� ��,���% ���&�� ���� ��� � ����� ������ ��

�������� (�� ������ wait% notify() ! notifyAll() ���� ��� �,�������

��� ������ � ����� ���� ���� �� ������ ��� �/���� �� � ����� ������

0� ��� � �� ����� �� ������ &�� ����� � ����� ����% put() ������ ��

��� ! get() �� ������N

public synchronized void put(int value){

while(!writeable){

try{

wait();

} catch(InterruptedException e){ }

// ofrece un nuevo valor y lo declara disponible

contents = value;

writeable = false;

// notifica que el valor ha sido cambiado

notify();

}

public synchronized int get(){

while(writeable){

try{

wait();

} catch(InterruptedException e){ }

writeable = true;

// notify que el valor ha sido leído

notify();

//devuelve el valor

return contents;

}

9=; APÉNDICE B. HILOS EN JAVA

8��� ����� ��������� ���� �� � ����� ��� �� � + ��� �� �� ����� join[

()|(long)]% � �� ����� Thread% �� ���� ������� &�� �� + �� ������ �� �,���#

� �� +���� &�� �� ���� .��� ��� ��� �,����� � �� ����� �� ����� join()�� + ��

h1 ��� �� + �� h2% ���� D�� �� ��������� �� �,���� �� ! �� ���� ����� +����

&�� �� + �� h1 +�!� ���� ���� 0� ����� join(long) ��� �� ���� ���������

�� ������% �� ���� ����� .�� �� � ���� �� � � ������� &�� �� ��� ������� ��

��������� �� �� + ��% � �� ���� ����� �� .��� ��% �� + �� &�� ����� ���� �����

�� �,���� ���

���� �. 6-2 ,* G1.2- 3/4/ 4*-2.9*4 6(/ *+6/+18(

2��������� &�� �� � ��� �� �������� � -����� �� .� ��� ����� ���

��� �� ����� ��

X(t+1)i =

X(t)i−1 + 2X

(t)i + X

(t)i+1

4. G��9H

0� �� ���� �� G@�>H �� ������� ��� �� ����� ��� �������� �� � ���� ���� �

�����,�� ���� �������� ���� ����� ��� �������� �������% �+��� �� � �������

�� ��&���� � ����� � ������� � �� � ���� + ��� JAVA�

���� ������ ��� � � �� �� ����� � � ����� �� �� 9? ������ �������

(N = 10), ! ���������� � ����� �� ? �� B% �������� ��� ������� ���� ����

(0 < i < N − 1) �� ���������� �� � ���� �� ����� �� G��9H� ���� �� ���� � ���

������ -������� (i = 0 ! i = N − 1) ��� ������� ���������� �����������

���� �������� �� �������� ��������� &�� ��� ��� � ���� � � ���� �� t = 0�� ���������� ������ �� �� �� ������� xs[]% ! �� � ����� �� ������� xt[] ����

��������� ��� ������ ������� �Xi ��������� �� �� � ���� t+1% ������ ��������� ������� xs[] �� ������ ��� ��� ��� ������ ������� ������ �� �� xt[]� 0�

���� ���� �� ����� �� ������% �� �� �% �� + ��� � �,���� ��% ��� ������ �����

���� � � � �������� ����� ��� �������� xs[] ! xt[]% �� &�� ��� �� &�� �����

�������� ��� ������� �� ��� ��� + ���% ��� �� &�� �� ��&� ��� �� ����� ��� �

� ����� ��� �� ���� ��������� �� ��������� � � ��� ����� (� ����� � �����,�

���� ���������% ��� &�� ��� � ��� + ��� �� ��������� � ������ ����� ���

��� � ���� � 9 � @ (0 ≤ i ≤ 4) ! �� ���� � A � B (5 ≤ i ≤ 9)�

B.3. EL USO DE HILOS PARA RESOLVER UNA ECUACIÓN 9=>

�� + �� �������� � �������� ��� ������ ������� �Xi, ���� i = 0, 1, 2, 3, 4, ��

����������� + �� I, ! �� + �� &�� ����� ����� ��� �������Xi, ���� i = 5, 6, 7, 8, 9,

�� ���������� + �� D� 0� ����� ��� ������ ���� � ���N

9 0� + �� I ������� ��� ������ ������� � Xi ����� ��� &�� �����% ! ��� ����#

���� �� �� ������� xt[]; � ������ &�� ������������ �� + �� D ������� ���

������ ������� � Xi &�� ����,��

; 0� + �� I ������ �� �� ������� xs[] ��� ��� ������� � xt[] �� ��� ��� � ����

0, 1, 2 ! 3, �,��� � � ������ ��� �� ��� � �� @ &�� �� �� � ��� ��� �� + ��D

���� �������� �� ����� � �� ��� � �� A� 2 � �������� �� + �� D ������ �� ��

������� xs[] ��� ��� ������� � xt[] �� ��� ��� � ���� 6, 7, 8 ! 9% �,����� ��� � �� 5 � � ������ ����

(�� + ��� I ! D ������ �� �������� �� ��� ����� 9 ! ; �� ����� ���% ���

�� &�� �� �,���� �� �� �� ����� � ���% ���� �������� � ���� ���� ��� ������

@ ! A% &�� ��� -������� ����� ��� ���� &�� ������ ��� + ���% ���� ���� ����

���� ���% !� &�� � �� + �� D ������� �� ����� ����� �� X5 � � &�� �� + �� I

+�!� ������ ��� �� ����� �� X4% �� �������� � X5 ���� ������������ �� ����

-����% � �� + �� I ������� X4 � � &�� X5 +�!� � � ������ ���% �� ��������

�� ����� � X4 �������� ���� � ����� ��� ��� + ��� �� ��� ������ @ ! A ��

��&� ��� � �� ��� ���% �� ���� ���� �� �� �� ��,��� ������� �% ��� &�� ��

���� ��� ��� ���� �� ���� ��% ��� �� &�� �� ������� � &�� ��� ��� .��� ���� ��

��� ��� ���� � ����� ���� ���� ��������� �� ��������� ��

> 0� �� ���� � ��� + ��� &�� +�!� ������ � �� �����,� � ��� ������ 9

! ;% ��� .�� �� ��� ��� &�� +� .��� ��� ! �� ��� ��� �� ���� �� �����

� ������� 0� ���� + �� ����� ��� .&�� �� ��� ��� &�� +� .��� ���%

������ ���� ��� ������� �� ������� xs[]��� ��� ������� � xt[] �� ���

��� � ���� @ ! A% �� �� �% ���� ��� � ��� + ��� ������ ���� ��� ������

-������� ���� �������� �� ��������� �% ! ��� ��� ������ ���� ��� �������

��� .�� �� + �� &�� ���� �� ����� � ������ &�� ���� ���� �����

(�� ����� 9% ; ! > �� ��� ��� +���� ������ �� �D���� ��&��� � � ����� �#

����

9=@ APÉNDICE B. HILOS EN JAVA

0� �� �� �� ������,� JAVA &�� ��������� �� ����� ��� �� �� � �� ����N

G�������� Hilos.javaHN

public class Hilos{

double [] xs = {1.2, 2.3, 4.5, 8.3, 2.3, 7.8, 9.0, 8.0, 9.0, 11.1}

double [] xt = new double[10];

Thread hilos[] = new Thread[2];

Hilos(){

work();

}

public void work(){

Monitor m = new Monitor( 2︸︷︷︸G9H

,true︸ ︷︷ ︸G;H

,100︸︷︷︸G>H

); // Objeto monitor

11 G9H � �� �� �D���� � + ���

11 G;H �� � � �� �� �� ������ � ����� �� ��� �������

11 G>H � �� �� �D���� � ����� ����

hilos[0] = new Hilo( 0, 4︸︷︷︸����� � ������ ��

,1,m)

hilos[0] = new Hilo( 5, 9︸︷︷︸����� � ������ ��

,2,m)

hilos[0].start()

hilos[1].start()

try{

hilos[0].join();

hilos[1].join();

}

catch(Exception e){e.toString();}

for(int j=0; j<10; j++)

System.out.println(xt[j]+” ”);

}

public static void main(String []args)

{

new Hilos();

}

public class HiloI extends Thread{

int a, b, Name;

Monitor m;

HiloI(int a, int b, int Name, Monitor m){

super();

this.a = a;

this.b = b;

this.Name = Name;

this.m = m;

}

B.3. EL USO DE HILOS PARA RESOLVER UNA ECUACIÓN 9=A

public void run(){

while(m.Seguir()){

for(int i=a; i<=b; i++){

System.out.println(”Hilo numero haciendo:”+Name+”:”+i);

if (i==a) xt[i]=xs[i]

else

xt[i] = (xs[i-1] + 2*xs[i] + xs[i+1])/4;

}

for(int i=a; i<=b; i++){

xs[i]=xt[i];

System.out.println(”Hilo numero actualizando:”+Name+”:”+i);

}

m.terminado(); //Notificación que se completo la iteración

}

}

}

public class HiloD extends Thread{

int a, b, Name;

Monitor m;

HiloD(int a, int b, int Name, Monitor m){

super();

this.a = a;

this.b = b;

this.Name = Name;

this.m = m;

}

public void run(){

while(m.Seguir()){

for(int i=b; i>=a; i-){

System.out.println(”Hilo numero haciendo:”+Name+”:”+i);

if (i==b) xt[i]=xs[i]

else

xt[i] = (xs[i-1] + 2*xs[i] + xs[i+1])/4;

}

for(int i=b; i=>a+1; i-){

xs[i]=xt[i];

System.out.println(”Hilo numero actualizando:”+Name+”:”+i);

}

m.terminado(); //Notificación que se completo la iteración

}

}

}

9=: APÉNDICE B. HILOS EN JAVA

public class Monitor{

int number, iter;

boolean seguir;

Monitor(int number, boolean seguir, int iter)

{

this.number = number;

this.seguir = seguir;

this.iter = iter;

}

public synchronized void terminado(){

number-;

try{

if(number!=0) wait();

else

{

System.out.println(”Hilo frontera:”+Thread.currentThread());

xs[4] = xt[4];

xs[5] = xt[5];

iter-;

if(iter==0)

seguir = false;

number = 2;

notify();

}

}catch(Exception e){e.toString();}

}

public boolean Seguir(){ return seguir; }

}

0� ������ � ������ �� ����� �� �������� JAVA �� ������� �� �� .����

G��># 10H�

B.3. EL USO DE HILOS PARA RESOLVER UNA ECUACIÓN 9=<

HiloD

a : int

b : int

Name : int

HiloD()

run()

(from Hilos)

Monitor

number : int

iter : int

seguir : boolean

Monitor()

terminado()

Seguir()

(from Hilos)

m

HiloI

a : int

b : int

Name : int

HiloI()

run()

(from Hilos)

m

Hilosxs[] : double

xt[] : double

Hilos()

work()

main()

-this$0

-this$0

-this$0

Thread(from lang)

hilos[]

Runnable

run()

(from lang)

B.3-F10. Diagrama de clases del programa multihilado

(�� ��� ��� ���� ���� + ���� � ���� ��� ����� �� ������+� ��� ��� � ���#

��� ���� ���������% ������ &�� ��� + ��� ������� ���� ��� ����� ! � ����

������� �� �� �����,� ���� ����� � ������� 0� � ����� ������ �� &�� ��������

�� � ����� ���� ��������� ���� ������� -������� + ��� � �,���� �� �� #

-������� �����������% ��� �� .��� � � &�� �� ��� ��� �� ��������� ��� ���

+ ��� �� �,����� �� ����� � �����

�� �/ ���� -����� �� ������������ �� �� �������� ���� + ��� &�� �� �,�#

���� �� ��� ��&� �� �� ��������� � �� ��� ��&� �� ��� �� � ��� �������#

����% �� � � &�� ��� + ��� �� ��������� � ������ �������% ����� ��#

������� � ��� �� �,������� 2 � �������% �� �� � ����� ���� ���������

9== APÉNDICE B. HILOS EN JAVA

������ ����� �� ������ &�� �� ����� �,������ �� � ��� � ���� ������ + ���

���� ����������� �� ������% ! �� ���������� � �� ������� � ����� ��������

��� � �� ����� ���� ���� ���� ���� ��� � ������ ���� ���������N

9� �� �� ���� ���� � &�� �� + �� &�� �� �,����� �� ���� �� �� � ��!��

�� �� �% ������ &�� �� ��� ��� &�� ���� + �� �� ���� �,������� �� ����

����������

;� �� �� ���� ���� � &�� + ��� � ����� �� �� � �� �� �,������� �����

�/ �� � ��.� ����� ����������� ���� &�� ����� �,���������

>� �� �� ���� ���� � &�� + ��� � �� ��� �� �� � �� �� �,������ ��

� ��� � �����

@� �� �� ��� �� � ��� �� �� �� � � �,���� �� � ��� + ��� ���� ����� ���

�� ���� � �,���� �� � �� �������� + ���% � ���� ����,�� �� ������ �

�������� ������� ���

� ���� ���� �� �� ������� �� � ���� � �,���� �� ��&��� � �� ��������

Hilos.java ���� ���� ��� 9%???%??? G��� ����H � ����� ���� �� �����&� ��

�� ��������� ! �� ��� � ��������� SMP�

'�&� ��12 ����� 8����� �� $ ����

G�� ���������H ���� �� 7 ;�@"+� 1 E �;??? ���-��� ���� 9>�:@���

G� ���������H ���� �� 7 6��� ;�@"+� 1 E �;??? 2����� <�A���

B.T1. Tiempos de ejecución del programa Hilos.java

��������

���� ����-�� � ��������� �� � ��� ��� ����� 0� �� ���,���� � �������

� ������� ����% ��� ������ �.��� ���� ������ �� ���� � � � ������ � ��

��&���� � ��-�4����

� � � ��� �� � �� �� �������� ����� 0��� ����� ���� � �� ��� ��

� 3� �� ���� �� �/��� ������ �� �� �� ��� � �� �����������

*(-1,/, (ρ)� (� ��� � � �� ������ �� ������ ��� �� � � ��������

����� 0��������� � ���� &�� �.�� &�� �� �� ��� �������� &�� ����� ��

�� �� ���� &�� �����

�.61,2� J� 6���� �� ��� ������� � ��!�� ��������� � ���� ����� �� ����

��+����� � ! �� ������ � �� -���� � ��� ��� � ����� &�� ��� ���� ����� $���

��� 3� �� ��� ������� ���� �� � ���� ���� ! �-����� ���� ��� ����� � � ���

���� �� � -�����

�.6;2� �������� �� � ��� �� � �� 3� ��

�.6;2 +2034*-15.*� 0� ��������� � � ��� 3� �� �� �� ������N �����

! ��&� ��� (�� ����� ��� ������� ���� ! �� ��� � ���� � ����� ���������

��� �� ����������� ! �� ���� ��� (�� ��&� �� ��������� .����� � �� ������#

� �� ! ���� ���+�� ��������� �� ����� ���� ���� ���� �������� �����

�.6;2 *-)/5.*� 0� �&��� 3�,� �� &�� ��� ����������� � �� ����� � ! ���

���� ���� ����� ��� ��� �� ����&� �� ����� �� ����� �% �� ���� �� ���

�� � �����

�.6;2 1()*4(2� 0� �� ���� �� � ��������% ��&� ����% ������� ! ��&� ��� ��

�� 3�,� ���� ���.��� ��� ��� ������ ! �� ��� ���� �� +���� � 3�,� �������

�.6;2 1-2*()4831+2 B /,1/5:)1+2� ����� �� 3�,� �� � ���� �� ! � � ��#

��� ���� �� ����� 3�,� �������� ��� 0� � ���� �� � �� +�! �����-����� � �

9=B

9B? GLOSARIO

����� ��� �� � ����� �� �� � &�� �� ����% ! � �������� �������� �� � �� .��

&�� �� �������� �� ������ 0� �� ����� �� �� 3�,� �������� �� � ��� �����% �����

�� 3�,� ���� � ��! ��� ������% ��� �� &�� �/ ��� ��! ���� ��� � � � �

&�� �� �����.��� �����% ! ��� ��! ���� -� �� ��� ���% �� ���� � � �������� ��

���� ��� ����� � 3�,�� � ��� � ���� ����� � ! ����� ������ ���/ ���% �

-���� &�� �� -� �� �� ! �� �����-����� � � ����� ����� ����� ������� ��&��)���

��,�� � ����� �� ��&� ���� ! -������% �� ��� �� ���� � � ���� �� �� �����

����� ����� �� ���� � � ��� ��� � ���� �� 3�,�% ����� ��� ���� ���

���� �������� ����

�.6;2 -63*4-8(1+2� 0� 3�,�� ������� ���� �/ ��� ��� ���� �� �� �� �����

3�,�� ��� ����� ��� ������� &�� �� �� ��� �% ������� 3�,�� ������ ���%

! 3�,�� ��� ����� ��� ��!���� &�� �� �� ��� �% ������� �������� ���� (�

����� � �� ��� � �� �� � �� �� ��� � ���� �������� �� ����/ ��������

� 330 �1��� � 1300 I�1+�� (�� ���� � �+�&�� ���� ����� ����� � �� 3�,���������� ����

��� � ����� ���������% 'D�� ���� ������ $��� �� � ��������� �� ��#

������ ��� �� ����� �� ���,���� ��&��)� � ��������� &�� ������ �����

-������� �����

%1.2� G$+���H 0� ��� �� ��� ������� � � �,���� �� � �� �� ������ �

���� ����� � �� ��������

�()*4D/=� 0� �� �� � -�� �� !1� ��� �� ���D� ! ������� � &�� �-���� ��

� ����� ���� �������� �� �-����� ���

��� ����� ��� �� ����#���������

����� '�&� �� 7 ����� �������� ���������� �� JAVA�

��� � 'D�� ���� ������� ����% 'D�� ���� ������ ��&� ������� � �����#

����� �� ���� ���� ��� � � ��� �� ������� ���� &�� ������ ����� -�������

����% ���� �� �� ���� � ��� ���� �����������

���� ����-�� � ���� � '����,��� 0��� ����-�� �.�� ��� ������ &��

����� ��� �� � ���� ���� ����� ��������� ������ �� �� PVM�

�6.)1+2036)/,24/� ���,���� � ����������� &�� ��� �� ! -�� �������

���� ��� �������� ���� �����,�� ���� ��� ���� ��&� �� ��������� ��� �� �

� ��� �� � ���� ����� ��

GLOSARIO 9B9

�I0*42 ,* �/+G� (M) 0� �D���� � '��+ �� ��� �� � � ����� �

����� ��% ! �� �.�� ���� �� ����� �� ����� �� ����� � �� 3� � ! �� ����� �

����� �� ��� �%

M =V

a,

��� V �� �� ����� � �� 3� � ! a �� ����� � ����� �� ��� �� 2 M > 1% ��3�,� �� �������� ��% ! � M < 1 �� 3�,� �� ������ ���

���� '��������� ���� ������� ��� ����� ���� �������� ������ &�� ���#

� ��� �� ������ �����N ���� � ���� ����% ����� ��� ��% ��������� �� ! '�#

����

�*-2 *-3*+>7+2 (γ)� 0� ���� ������.�� � ��� ������� � �� �� ���� � ��

�� � � ������� � �+� ������� ��

�4*-18( (p)� (� ���� �� �� �� 3� � �� ������ �� �.�� ���� �� -����� �

������� �� ������ ��� �� � � ����% ��-����� ������% &�� ���D� ����� ���

�����.� � ������ � �� �� 3� ��

���� '�&� �� 7 ����� ��������� ��&���� � ��-�4��� &�� ��� ��� �����#

�� �� ���,���� � ����������� ���� ������� �� ����� � � ������� ��

���,�����

���� ������ �� C����� � '������

��� � J�� ������� ��% 'D�� ���� ������ ��&� ������� � ���������� ��

�� ���� ��� ������� �� ���� �������� ��� �� �����

��� � J�� ������� ��% �� 2��� ����� ��&� ������� � ���������� �� ��

���� ��� ������� �� ���� ���� �������� �� ����

��� � J� ��������% 'D�� ���� ������ $��� �� � ��������� �� ��������

&�� ���� ��� �� ����� ��� �� ������ �� �� � ��� �������� ! ��� ������ �

���� ����� ����� -������� �����

�� ��������� � ������� � $����-����� � � ��&����� � ������

���� '�&� �� 7 ����� �������� ����� �� * ����

65*4>/ 8�/�59� � ���� � �� &�� ���� �� ����� ��� �� �������� �� ����

�� ����� � ����� ��� �����

9B; GLOSARIO

� �� ��������� � ���������� � J���� �� J�� ������ �� ����� � ���� � ��

� � ����� � ��� &�� ������� ��� $��� J�� �� D� � ����� $�� ���� ��� ��!

������,�% ����� � �������� ��

�1-+2-1,/,� (� � ���� � �� ��� ���� �� � ��� 3� �� &�� ����� -� �#

� ��� (� �������� � � �� -� �� �� �� ��� � ���� ���� -�� ���% ����� �� � ��

� 3� � ! � �� ���.����� �� -�� �� � ������ � 3�,�� 0� �� ������ �� �������

������� �� ���� ��� �� 6��� �� ������ (� -� �� �� ���� �� � ����� ��� � ���� �

� ��� ��������� ��

�20*(+./)64/

(� ������������ �� � ��� ���� ��� ��� ����� ! ���������� �� 3�,� �� ��

� �� ����N

u ���������� � ����� � �� x

v ���������� � ����� � �� y

ρ ���� �

p ���� ��

T $����������

e 0������

M �D���� � '��+

γ ���� ������.��

V ���������� � ����� � �����

R ��������� � ��� ����� ���-�����

Recommended