Descripción del proyecto
LOS ALGORITMOS DE ANALISIS DE CONECTIVIDAD CEREBRAL FUNCIONAL Y EFECTIVA SON COMPUTACIONALMENTE MUY EXIGENTES Y SU EJECUCION SUELE SER EXTREMADAMENTE PESADA. ESTO SE DEBE A TRES FACTORES FUNDAMENTALES:- SON PROGRAMAS DE ALTA COMPLEJIDAD ALGORITMICA.- PROCESAN GRANDES CANTIDADES DE DATOS, COMO SON LOS PRODUCIDOS POR LOS EQUIPOS DE EEG/MEG.- SUELEN ESTAR ESCRITOS EN MATLAB PARA OBTENER PRONTO UN PROTOTIPO, PERO DEJANDO DE LADO ASPECTOS COMO LA EFICIENCIA.MATLAB ES UN LENGUAJE SENCILLO Y POTENTE, DE USO COMUN ENTRE LA COMUNIDAD CIENTIFICA PARA EL DESARROLLO RAPIDO, PERO SU NATURALEZA INTERPRETADA Y SU MODELO DE EJECUCION ESTRICTAMENTE SECUENCIAL, IMPIDEN QUE ESTOS PROGRAMAS ALCANCEN LAS PRESTACIONES NECESARIAS PARA SU USO INDUSTRIAL. ESTO ES ASI HASTA EL PUNTO DE QUE LA LENTITUD O EL GRAN CONSUMO DE MEMORIA, SE CONVIERTE MUCHAS VECES EN EL FACTOR LIMITANTE DEL TIPO Y TAMAÑO DE LOS EXPERIMENTOS QUE SE PUEDEN LLEGAR A ABORDAR.A DIA DE HOY LA TECNOLOGIA COMPUTACIONAL OFRECE GRANDISIMAS CAPACIDADES DE COMPUTO GRACIAS A SU ELEVADO GRADO DE PARALELISMO. OBVIANDO LA POSIBILIDAD USAR UNA PLACA MADRE MULTIPROCESADOR, LA TENDENCIA ACTUAL ES QUE CADA PROCESADOR SEA MULTICORE, INTEGRANDO DE 2 A 16 CORES. ESTAMOS HABLANDO DE UNOS 10 GIGA FLOPS DE POTENCIA DE COMPUTO POR CORE.PERO ESTAS CIFRAS SE QUEDAN PEQUEÑAS AL LADO DE LAS COMUNMENTE DENOMINADAS TARJETAS GRAFICAS. EN ESTAS SE ALCANZAN LOS 500 CORES POR TARJETA, TRATANDOSE EN ESTE CASO DE UNIDADES ORIGINALMENTE DISEÑADAS PARA COMPUTO GRAFICO, ESTO ES, COMPUTO EN COMA FLOTANTE MAS SENCILLO PERO SOBRE GRANDES MATRICES DE IMAGEN O TEXTURAS. UNA TARJETA GRAFICA PUEDE OFRECER UNA CAPACIDAD DE COMPUTO DE MEDIO TERA FLOP EN DOBLE PRECISION O UN TERAFLOP EN SIMPLE PRECISION A UN COSTE MUY ASEQUIBLE. Y ESTO CON UNA SOLA TARJETA, PUDIENDO TENER VARIAS EN UN MISMO COMPUTADOR (HASTA 16). ESTA TECNOLOGIA ES TAN POTENTE QUE 3 DE LOS 5 SUPERCOMPUTADORES MAS POTENTES DEL MUNDO ESTAN BASADOS EN UNA COMBINACION DE CPUS MULTICORE CON GPUS.EL PROBLEMA ES QUE LA PROGRAMACION DE ESTOS RECURSOS COMPUTACIONALES PARA SU EXPLOTACION EFICIENTE NO ES TRIVIAL. EN EL CASO DE LAS CPU, LA TECNOLOGIA DE PROGRAMACION OPENMP ES EL ESTANDAR MAS EMPLEADO, SIGUIENDO UN MODELO MIMD O PARALELISMO DE PROPOSITO GENERAL SOBRE MEMORIA COMPARTIDA. POR SU PARTE, LA PROGRAMACION SOBRE GPU ESTA HOY EN DIA MENOS MADURA Y EXIGE MAS CONOCIMIENTOS Y ESFUERZO. EN ESTE CASO EL MODELO DE PARALELISMO SUELE SER SIMD, O EJECUCION DE LOS MISMOS CALCULOS SIMULTANEAMENTE SOBRE MULTIPLES CONJUNTOS DE DATOS. NUESTRO GRUPO OFRECE UNA AMPLIA EXPERIENCIA EN OPTIMIZACION Y PARALELIZACION DE APLICACIONES CIENTIFICAS DE ALTA DEMANDA COMPUTACIONAL COMO:- SIMULACION DE MODELOS CLIMATICOS.- CALCULO DEL FLUJO OPTICO.- CALCULO DE TRIANGULACION DE DELAUNAY.- SIMULACION DE DESLIZAMIENTOS CON SMOOTHED PARTICLE HYDRODYNAMICS.EN CADA CASO APLICAMOS LA COMBINACION MAS ADECUADA DE LAS TECNOLOGIAS DISPONIBLES PARA INTENTAR ALCANZAR LAS MAXIMAS PRESTACIONES:- MPI: COMPUTACION DISTRIBUIDA MEDIANTE PASO DE MENSAJES.- OPENMP: MULTIPLES HILOS SOBRE MULTIPLES CPU CON MEMORIA COMPARTIDA.- USO EFICIENTE DE LAS UNIDADES VECTORIALES INTERNAS DE LAS CPU.- CUDA/OPENCL: COMPUTO SIMD SOBRE GPU.LA APLICACION EFICAZ DE ESTAS TECNOLOGIAS PRECISA UN ATAQUE METODOLOGICO A CADA PROGRAMA O ALGORITMO ABORDADO, DESDE SU ESTUDIO INICIAL Y ANALISIS DE PRESTACIONES, HASTA LA CONFECCION Y VALIDACION FINAL DE UN PROGRAMA PARALELO EQUIVALENTE.