Ningún problema complejo tiene una solución fácil, y no creo que sea un experto en ninguno de los temas mencionados a continuación. Resolver cualquier problema como estos es un proceso iterativo, ya sea con una comprensión de las matemáticas, el cálculo o una implementación de cualquiera de ellos. Sin embargo, discutiré lo que sé hasta ahora con mis experiencias: he trabajado en simulaciones teóricas de dinámicas superfluidas con gases cuánticos y, más recientemente, analizando estructuras moleculares de proteínas con cristalografía XFEL.
Trabajando con sistemas cuánticos, he escrito software de simulación utilizando métodos informáticos de GPU. Esto implicaba principalmente C / C ++ / CUDA, y se utilizó para la solución de la ecuación de Schrodinger no lineal (ecuación de Gross-Piteavskii). El código se publica como GPUE. Este código fue escrito principalmente para la supercomputadora OIST Sango usando GPU NVidia K80. El código de la GPU formó la mayor parte de las simulaciones, con un software de análisis adicional escrito en idiomas de niveles mucho más altos como Python, MATLAB y Mathematica. El proceso general de simulación implicó el cálculo de soluciones de una PDE no lineal compleja utilizando métodos pseudoespectrales, determinando las correlaciones orientativas de las estructuras observadas en las simulaciones y calculando resultados analíticos para la interferencia de múltiples ondas a lo largo del tiempo. Si necesita ayuda para dormir por la noche, puede encontrar más información aquí.
Para el trabajo de cristalografía, esto implica el uso de Cori de NERSC (actualmente # 6 en la lista Top500), para examinar los datos del LCLS en SLAC en Stanford. El LCLS es un láser de rayos X, con la longitud del pulso del orden de 10 a 100 de femtosegundos, y esencialmente captura una muestra de proteína para examinarla en un instante en el tiempo. Al analizar los datos resultantes recopilados (que son rayos X dispersos) de muchas de esas muestras de proteínas (del orden de 100k’s), la estructura de la proteína se puede determinar con gran precisión. Esto implica un largo cálculo para determinar los puntos de reflexión de cristal para cada muestra, mapeándolos con estructuras y orientaciones cristalinas conocidas, integrando los resultados, refinándolos y combinando todos los conjuntos de datos en uno para dar un resultado general. El resultado de esto puede decirnos cómo se ve / se comporta la proteína, donde los cálculos determinan el factor de estructura de pretein. A partir del factor de estructura podemos calcular el mapa de densidad de electrones, que son las imágenes bonitas habituales que vemos cuando nos referimos a las estructuras de proteínas.
- ¿En qué se diferencian las experiencias post-doctorales de National Lab de las de un laboratorio académico?
- En general, ¿cómo ayuda financieramente a un profesor publicar un trabajo de investigación?
- ¿Cuáles son algunos buenos temas de investigación de APUSH?
- ¿Cuáles son las áreas de investigación actualmente activas en PNL?
- Cómo seleccionar un tema para una tesis
Para esto, paso mis días optimizando códigos para Cori para asegurar que este proceso sea lo más rápido y lo más automatizado posible. Cada cálculo que puede ser independiente debe serlo, y todos los posibles cuellos de botella de cálculo deben minimizarse. Este es un proceso largo y requerirá mucho más trabajo. Compilar software con los indicadores de arquitectura correctos puede brindar grandes beneficios, como la arquitectura Intel Knights Landing en Cori. Para esto, tener habilitados los conjuntos de instrucciones AVX512 puede proporcionar enormes ganancias de rendimiento; sin embargo, esto requiere tener un compilador moderno compatible. GCC, Intel’s icc y LLVM / Clang son compatibles con estas instrucciones, sin embargo, construir este (o muchos otros) paquete de software con los tres no es una tarea trivial, ya que los cambios en los estándares del compilador y los niveles de soporte varían, especialmente cuando se usa código antiguo. Esto significa rastrear mensajes de depuración y errores / advertencias del compilador para descubrir qué funcionó y qué no funcionó; crear rutinas de prueba y realizar registros ahorrará estrés y tiempo a largo plazo.
Vincular el software con el MKL de Intel también tiene el potencial de ofrecer un rendimiento mejorado, aunque nuevamente, puede ser un desafío cuando se usan rutinas heredadas. MPI + OpenMP son otro conjunto de herramientas y técnicas que permiten que la aplicación se ejecute a gran escala. Las interacciones y la transmisión eficiente y correcta de mensajes pueden ser un desafío, y a menudo requieren el uso de software adicional para ayudar en el análisis. Herramientas como TAU pueden ayudar a encontrar cuellos de botella de comunicación MPI y problemas entre nodos, con Intel VTune funcionando bien para el análisis en el nodo.
Cuando se complete, este proyecto permitirá el análisis de datos casi en tiempo real de las estructuras de proteínas durante las etapas de recolección de datos, en lugar de esperar horas o más. Dado que el tiempo del haz de rayos X es bastante costoso y difícil de conseguir, tener una retroalimentación precisa y rápida permitirá estrategias óptimas de recopilación de datos, permitiendo a los científicos adaptar las estrategias de recopilación de datos para adaptarlas a las muestras.