Curso de Bio-HPC Práctico de FASTA en Facultad de Ingeniería El programa FASTA ofrece la posibilidad de compilar código serial o paralelo, usando tanto threads como MPI o PVM. A su vez genera diferentes binarios dependiendo del tipo de cálculo que se desee realizar, esto es: comparar secuencias de proteinas entre sí, comparar secuencias de ADN o comparar proteinas contra ADN (traducción mediante). Para cada uno de estas posibilidades, FASTA tiene versiones seriales del programa (fasta34, fastf34, fastx34, etc), versiones con pthreads (fasta34_t, fastf34_t, etc.), y finalmente versiones que soportan MPI (mp34comp*) o PVM (pv34comp*) La página web de referencia de FASTA es: http://fasta.bioch.virginia.edu/ Desde ella es posible acceder a la interface web para realizar alineaciones. Un manual de referencia de uso de FASTA se puede encontrar aquí: http://www.psc.edu/general/software/packages/fasta/manual/fasta.html ------------------------------------------------------------------------- Directivas para el práctico: En el directorio ~/bin se encuentran los binarios de FASTA compilados para el cluster de PCs con linux En el directorio ~/sun se encuentran los binarios de FASTA compilados para el servidor SUN En el directorio ~/data se encuentran un conjunto de archivos correspondientes a proteinas, bibliotecas de proteinas o ADN de diferentes orígenes, todos en formato FASTA Ejercicio: Ejecución del programa ssearch de paquete FASTA, para alinear una proteina contra una biblioteca de proteinas. Comparación de tiempos de ejecución en un ambiente multithreading El programa SSEARCH es parte del paquete FASTA e implemente el algorítmo de Smith-Waterman para alineamiento de a pares. a) Ingrese al equipo SUN ejecutando: ssh dieste b) revise los archivos que están en ~/data y elija un archivo correspondiente a una proteina, por ej.: mchu.aa c) seleccione una biblioteca de proteinas contra la cual se desea efectuar el alineamiento, por ej.: yeast.aa d) ejecute el programa ssearch34, con las siguientes opciones en la linea de comando: time ~/sun/ssearch34 -Q -b 10 -d 10 ~/data/mchu.aa ~/data/yeast.aa >serial.out OJO: es posible que otros estén también realizando cálculos similares en el mismo usuario: si desea conservar la salida del cálculo, elija otro nombre para el archivo de salida. Por defecto la salida es volcada a pantalla. e) ejecute la versión multithreading del programa, de la siguiente manera: time ~/sun/ssearch34_t -Q -b 10 -d 10 ~/data/mchu.aa ~/data/yeast.aa >thread.out OJO: note que los nombres de las versiones mutithreading de los programas terminan con "_t" Es posible definir cuantos threads ejecutar, con la opción de comando -T # Prueba varios valores de -T, desde 1 a 14 y compare tiempos de ejecución. Por defecto, el programa ha sido compilado para emplear 14 threads. OJO: note que el tiempo User que reporta el comando time es la suma de tiempos de CPU de los procesadores utilizados, por lo que hay que dividir entre el número de threads especificados para poder comprobar el speedup. También se notará que el Elapsed Time (o Real time) baja a medida que se aumenta el número de threads. Compare el tiempo empleado por el programa ssearch34 con lo que le toma a los programas que implementan la heurística de FASTA.