Upload
others
View
4
Download
0
Embed Size (px)
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 [email protected] . 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
2ρ
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���� �� � ����������
Dρ
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���� �� � ����������
Dρ
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 ��������� � ��� ����� ���-�����