<< Chapter < Page Chapter >> Page >

¿Cómo simplificaría usted el siguiente ciclo condicional?
DO I=1,N A(I) = A(I) * BIF (I .EQ. N/2) A(I) = 0. ENDDO

Cronometre el siguiente ciclo en su computadora, con y sin la condición. Ejecútelo con tres conjuntos de datos: uno con todos los valores A(I) menores que SMALL , uno con todos los valores A(I) mayores que SMALL , y un tercero dividido en partes iguales. ¿Cuándo es mejor dejar la prueba en el ciclo, si es el caso?
PARAMETER (SMALL = 1.E-20) DO I=1,NIF (ABS(A(I)) .GE. SMALL) THEN B(I) = B(I) + A(I) * CENDIF ENDDO

Escriba un programa sencillo que invoque a una subrutina sencilla en su ciclo interno. Cronometre la ejecución del programa. Luego dígale al compilador que compile la rutina en línea, y cronometre nuevamente. Finalmente, modifique el código para realizar las operaciones en el cuerpo del ciclo, y cronometre el código. ¿Cuál opción se ejecutó más rápido? Puede que deba revisar el código máquina generado para imaginar el porqué.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Cómputo de alto rendimiento. OpenStax CNX. Sep 02, 2011 Download for free at http://cnx.org/content/col11356/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cómputo de alto rendimiento' conversation and receive update notifications?

Ask