Solicitud de referencia para perfilar códigos de computación de alto rendimiento

8

Escribo códigos en Fortran y C para varios algoritmos matriciales. Sin embargo, cuando perfilo mis códigos usando VTune, generalmente encuentro alguna terminología que no puedo apreciar completamente. ¿Existe un buen recurso para aprender la creación de perfiles desde cero a un nivel bastante avanzado?

Aunque estoy deseando perfilar códigos numéricos, no creo (podría estar equivocado) que perfilar otros códigos sea diferente. Quiero un tutorial sobre creación de perfiles y preferiría un PDF en línea (gratuito), pero no me importarían los libros o manuales.

He intentado leer el manual de VTune, pero eso es como tratar de aprender chino leyendo un libro en idioma chino.

Además, ¿es VTune el mejor camino a seguir? Realmente me gusta una GUI y como uso Intel MKL, pensé que sería mejor que Valgrind.

Encuesta
fuente

Respuestas:

6

Otra opción común es usar PAPI http://icl.cs.utk.edu/papi/ o TAU http://www.cs.uoregon.edu/Research/tau/home.php , Valgrind es excelente para encontrar errores de memoria .

Algunas diapositivas de TACC:

http://www.tacc.utexas.edu/user-services/training/course-materials

http://www.tacc.utexas.edu/c/document_library/get_file?uuid=fc609b77-b727-4bff-81a4-d30caa4013d4&groupId=13601

aterrel
fuente
Gracias por los excelentes enlaces. ¿También puede sugerir un buen tutorial en forma de PDF, libro o de otro tipo para aprender sobre la creación de perfiles?
Investigación
No tengo ningún libro pero preguntaré por ahí.
aterrel
Está bien, después de preguntarle a algunas personas, básicamente después de pasar las cosas fáciles, debes saber mucho sobre arquitectura de computadoras. Recientemente nos tropezamos con cosas tontas como la rapidez con la que se carga una palabra en un chip Intel (evitar la captación previa de hardware no es tan fácil como parece).
aterrel
1

La herramienta que he usado ampliamente para perfilar es valgrind (en combinación con la interfaz gráfica kcachegrind ). Valgrind es un conjunto de herramientas de análisis dinámico: detección de errores de memoria, búsqueda de errores de subprocesos y creación de perfiles.

Algunas referencias sobre Valgrind:

Desafortunadamente (depende de dónde vienes :-)), valgrind no se ejecuta en Windows, solo en máquinas basadas en Linux y Darwin.

GertVdE
fuente