investigacion & Desarrollo

 

Nuestro Blog

I + D

LUFAC cuenta con un grupo altamente calificado y dedicado a la I+D en el uso eficiente y óptimo de las nuevas tecnologías en diferentes ramas como la de software de calculo numérico, herramientas para la programación, configuraciones y optimizaciones de sistemas operativos Linux , uso de librerías y los nuevos lenguajes de programación para cómputo paralelo CUDA, openCL de igual forma en aquellos que son ahora un estándar como openMP, MPI, PosixThreads.

Nuestros expertos en la materia son egresados de las principales universidades de México entre los que se encuentran:

- Ciencias de la computación UAM-I, CINVESTAV

- Física Facultad de Ciencias U.N.A.M.

- Matemáticas Facultad de Ciencias U.N.A.M.

- Ingeniería en computación Facultad de Ingeniería U.N.A.M.

-Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas U.N.A.M.

 

Nuestras líneas de investigación son enfocadas a nuevas estrategias de paralelismo a grano fino de algoritmos numéricos en:

- Álgebra lineal.

- Ecuaciones diferenciales.

- Diferencias finitas.

- Generación de números aleatorios.

- Generación de mallas.

- Visualización y teoría de gráficos

-Simulación molecular

 

De igual forma realizamos una continua exploración para certificar el performance y uso de librerías como:

 

- BLAS

- ATLAS

- LAPACK

- cuBLAS

- cuRAND

- cuFFT

- GNU scientific library

- OpenMM

- FFTW

- cuSPARSE

 

Mejorando vía la modificación de herramientas open source (quedando así con el mismo licenciamiento GPL) para un uso eficiente y amigable de todo el material disponible de programación con herramientas como:

- VIM con snnipet's y highlighting sintaxis para lenguajes Fortran y C,  API's openMP, MPI, CUDA, openCL.

- IDE Eclipse con las mismas prestaciones que el vim pero con entorno gráfico y todas aquellas características agregadas que ofrece dicho IDE.

Además, se realiza un testeo continuo de aplicaciones, obteniendo así la experiencia necesaria para su correcta y óptima instalación-configuración, logrando de esta forma el mejor desempeño tanto para CPU como para versiones ya portadas en GPU. Entre dichas aplicaciones se encuentran:

 

- NAMD

- Gromacs

- Matlab

 

La lista se actualiza continuamente ponderando las necesidades de nuestros clientes.

Como parte fundamental en la adopción de nuevas tecnologías desarrollamos cursos para aquellos usuarios interesados en integrar dichas tecnologías en sus softwares y aplicaciones, muchos de los temas que se tocan en los cursos son los que día a día mantenemos en uso y desarrollo actualizandolos continuamente con las más altas exigencias que un desarrollo científico pudiese solicitar para compartir entre la comunidad de clientes, nuestro temario comprende:

 

I.- TOPICOS AVANZADOS DE PROGRAMACION EN C
II.- INTRODUCCION A LA PROGRAMACION PARALELA
III.- INTRODUCCION A GPU's Y CUDA
IV.- PRINCIPIOS Y CONCEPTOS DE PROGRAMACION CUDA
V.- ESTRUCTURA DE LOS PROGRAMAS Y ENTRONOS CUDA
VI.- EJEMPLOS DE PROGRAMAS CUDA CON METODOS NUMÉRICOS DEL ALGEBRA LINEAL Y ECUACIONES DIFERENCIALES.
IV.- COOPERACION ENTRE HILOS
V.- MANEJO DE EVENTOS GPU
VI.- MANEJO DE MULTIGPU
VII.- DEPURACION CON GPU
Vlll.- ESTRATEGIAS DE PARALELIZACIÓN DE UN PROGRAMA SERIAL
IX.-MÉTODOS NUMÉRICOS
X.- USO DE BIBLIOTECAS
XI.-PROGRAMACIÓN HIBRIDA MPI-OPENMP-CUDA-OPENCL

 

Donde la tendencia en la curva de aprendizaje es como se muestra en la siguiente gráfica:

Grafica 1

 

 

 

 

 

 

 

 

 

 

 

Dentro de la empresa también se desarrolla software de aplicación destacando:
- Nbodybench: Esta herramienta es una colección de benchmarks que siven para probar el rendimiento de distintas arquitecturas (Xeon Phi® , GPUs, ARM, etc...) usando el problema de N-Cuerpos. Ademas de que sirve para probar distintos métodos de programación como son: POO, Paralelelización, Functors y Templates.

-Moldynamics: Este software es una aplicación para simulación molecular, dicha herrmaienta concentra varios métodos numéricos para el análisis y estudio de sistemas en el área de Dinámica Molecular. El núcleo calcula la interacción de partículas dentro de un paralelepípedo, usando distintos potenciales y mediciones de propiedades f´ísicas. El código esta pensado para ser robusto, extensible, reusable, sencillo y óptimo.

Las aplicaciones están disponibles bajo la licencia GNU y puede ser descargadas en:

https://github.com/ch3m/moldynamics
https://github.com/ch3m/nbodybench

En el siguiente video se muestra una salida de Moldynamics, usando en tiempo real el visualizador de VMD.

 

 

 

 

algunos de nuestros clientes:

Ver todos nuestros clientes