La ciencia computacional , también conocida como computación científica , computación técnica o computación científica ( SC ), es una división de la ciencia que utiliza capacidades informáticas avanzadas para comprender y resolver problemas físicos complejos. Esto incluye
En el uso práctico, suele ser la aplicación de simulación por computadora y otras formas de cálculo del análisis numérico y la informática teórica para resolver problemas en diversas disciplinas científicas. El campo es diferente de la teoría y los experimentos de laboratorio, que son las formas tradicionales de ciencia e ingeniería . El enfoque de la informática científica consiste en obtener comprensión mediante el análisis de modelos matemáticos implementados en las computadoras . Los científicos e ingenieros desarrollan programas informáticos y software de aplicación que modelan los sistemas que se estudian y ejecutan estos programas con varios conjuntos de parámetros de entrada. La esencia de la ciencia computacional es la aplicación de algoritmos numéricos [1] y matemáticas computacionales . En algunos casos, estos modelos requieren cantidades masivas de cálculos (normalmente de punto flotante ) y suelen ejecutarse en supercomputadoras o plataformas informáticas distribuidas . [ se necesita verificación ]
El término científico computacional se utiliza para describir a alguien experto en informática científica. Dicha persona suele ser un científico, un ingeniero o un matemático aplicado que aplica la computación de alto rendimiento de diferentes maneras para avanzar en el estado del arte en sus respectivas disciplinas aplicadas en física, química o ingeniería.
La ciencia computacional ahora se considera comúnmente un tercer modo de ciencia [ cita necesaria ] , que complementa y suma a la experimentación / observación y la teoría (ver imagen). [2] Aquí, se define un sistema como una fuente potencial de datos, [3] un experimento como un proceso de extracción de datos de un sistema ejercitándolos a través de sus entradas [4] y un modelo ( M ) para un sistema ( S ) y un experimento ( E ) como cualquier cosa a la que E se pueda aplicar para responder preguntas sobre S . [5] Un científico computacional debería ser capaz de:
Se han dedicado esfuerzos sustanciales en las ciencias computacionales al desarrollo de algoritmos, la implementación eficiente en lenguajes de programación y la validación de resultados computacionales. En Steeb, Hardy, Hardy y Stoop (2004) se puede encontrar una colección de problemas y soluciones en ciencia computacional. [6]
Los filósofos de la ciencia abordaron la cuestión de hasta qué punto la ciencia computacional califica como ciencia, entre ellos Humphreys [7] y Gelfert. [8] Abordan la cuestión general de la epistemología: ¿cómo se obtiene conocimiento a partir de tales enfoques de ciencia computacional? Tolk [9] utiliza estos conocimientos para mostrar las limitaciones epistemológicas de la investigación con simulación por ordenador. Como la ciencia computacional utiliza modelos matemáticos que representan la teoría subyacente en forma ejecutable, en esencia, aplican modelado (construcción de teoría) y simulación (implementación y ejecución). Si bien la simulación y la ciencia computacional son nuestra forma más sofisticada de expresar nuestro conocimiento y comprensión, también vienen con todas las restricciones y límites ya conocidos para las soluciones computacionales. [ cita necesaria ]
Los dominios problemáticos para la ciencia computacional/computación científica incluyen:
La ciencia computacional predictiva es una disciplina científica que se ocupa de la formulación, calibración, solución numérica y validación de modelos matemáticos diseñados para predecir aspectos específicos de eventos físicos, dadas las condiciones iniciales y de contorno, y un conjunto de parámetros caracterizantes e incertidumbres asociadas. [10] En casos típicos, el enunciado predictivo se formula en términos de probabilidades. Por ejemplo, dado un componente mecánico y una condición de carga periódica, "la probabilidad es (digamos) del 90% de que el número de ciclos en caso de falla (Nf) esté en el intervalo N1<Nf<N2". [11]
En 2018 [ necesita actualización ] , más de la mitad de la población mundial vive en ciudades. [12] Para 2050, según estimaciones de las Naciones Unidas , el 68% de la población mundial será urbana . [12] [ ¿relevante? ] Este crecimiento urbano se centra en las poblaciones urbanas de los países en desarrollo donde los habitantes de las ciudades se duplicarán con creces, pasando de 2.500 millones en 2009 a casi 5.200 millones en 2050. [ cita necesaria ] [ ¿ relevante? ] Las ciudades son sistemas enormemente complejos creados por humanos, formados por humanos y gobernados por humanos. Tratar de predecir, comprender y de alguna manera dar forma al desarrollo de las ciudades en el futuro requiere un pensamiento complejo y modelos computacionales y simulaciones para ayudar a mitigar los desafíos y posibles desastres. El foco de la investigación en sistemas urbanos complejos es, a través del modelado y la simulación, construir una mayor comprensión de la dinámica de la ciudad y ayudar a prepararse para la urbanización venidera . [ cita necesaria ]
En los mercados financieros , un gran número de participantes del mercado que interactúan en diferentes lugares y zonas horarias negocian enormes volúmenes de activos interdependientes. Su comportamiento es de una complejidad sin precedentes y la caracterización y medición del riesgo inherente a este conjunto tan diverso de instrumentos suele basarse en complicados modelos matemáticos y computacionales . Por lo general, no es posible resolver estos modelos exactamente en forma cerrada, incluso a nivel de un solo instrumento, y por lo tanto tenemos que buscar algoritmos numéricos eficientes . Esto se ha vuelto aún más urgente y complejo recientemente, a medida que la crisis crediticia [ ¿cuál? ] tiene claramente [ ¿ según quién? ] demostró el papel de los efectos en cascada [ ¿cuáles? ] pasando de instrumentos únicos a través de carteras de instituciones individuales e incluso la red comercial interconectada. Comprender esto requiere un enfoque holístico y de múltiples escalas en el que los factores de riesgo interdependientes, como el riesgo de mercado, de crédito y de liquidez, se modelen simultáneamente y en diferentes escalas interconectadas. [ cita necesaria ]
Nuevos e interesantes avances en biotecnología están revolucionando la biología y la investigación biomédica . Ejemplos de estas técnicas son la secuenciación de alto rendimiento , la PCR cuantitativa de alto rendimiento , las imágenes intracelulares, la hibridación in situ de la expresión génica, las técnicas de imágenes tridimensionales como la microscopía de fluorescencia de lámina luminosa y la (micro)tomografía computarizada de proyección óptica . Dadas las enormes cantidades de datos complicados que generan estas técnicas, su interpretación significativa e incluso su almacenamiento plantean desafíos importantes que exigen nuevos enfoques. Más allá de los enfoques bioinformáticos actuales, la biología computacional necesita desarrollar nuevos métodos para descubrir patrones significativos en estos grandes conjuntos de datos. La reconstrucción de redes genéticas basada en modelos se puede utilizar para organizar los datos de expresión genética de forma sistemática y guiar la recopilación de datos en el futuro. Un desafío importante aquí es comprender cómo la regulación genética controla procesos biológicos fundamentales como la biomineralización y la embriogénesis . Los subprocesos como la regulación genética , las moléculas orgánicas que interactúan con el proceso de deposición mineral, los procesos celulares , la fisiología y otros procesos a nivel tisular y ambiental están vinculados. En lugar de estar dirigidas por un mecanismo de control central, la biomineralización y la embriogénesis pueden verse como un comportamiento emergente resultante de un sistema complejo en el que se desarrollan varios subprocesos en escalas temporales y espaciales muy diferentes (que van desde nanómetros y nanosegundos hasta metros y años). conectados a un sistema multiescala. Una de las pocas opciones disponibles [ ¿cuál? ] comprender tales sistemas es desarrollar un modelo de múltiples escalas del sistema. [ cita necesaria ]
Utilizando la teoría de la información , la dinámica del no equilibrio y simulaciones explícitas, la teoría de sistemas computacionales intenta descubrir la verdadera naturaleza de los sistemas adaptativos complejos . [ cita necesaria ]
La ciencia e ingeniería computacional (CSE) es una disciplina [ cuantificar ] relativamente nueva que se ocupa del desarrollo y la aplicación de modelos y simulaciones computacionales, a menudo combinados con computación de alto rendimiento , para resolver problemas físicos complejos que surgen en el análisis y diseño de ingeniería (ingeniería computacional). ) así como fenómenos naturales (ciencia computacional). La EIS ha sido descrita [ ¿por quién? ] como el "tercer modo de descubrimiento" (junto a la teoría y la experimentación). [13] En muchos campos [ ¿cuáles? ] , la simulación por computadora es integral y, por lo tanto, esencial para los negocios y la investigación. La simulación por computadora proporciona la capacidad de ingresar campos [ ¿cuáles? ] que son inaccesibles a la experimentación tradicional o donde llevar a cabo investigaciones empíricas tradicionales es prohibitivamente costoso. CSE no debe confundirse con ciencias de la computación pura ni con ingeniería informática , aunque en CSE se utiliza un amplio dominio de la primera (por ejemplo, ciertos algoritmos, estructuras de datos, programación paralela, computación de alto rendimiento) y algunos problemas de la segunda. se puede modelar y resolver con métodos CSE (como área de aplicación). [ cita necesaria ]
Los algoritmos y métodos matemáticos utilizados en la ciencia computacional son variados. Los métodos comúnmente aplicados incluyen:
Históricamente y en la actualidad, Fortran sigue siendo popular para la mayoría de las aplicaciones de la informática científica. [33] [34] Otros lenguajes de programación y sistemas de álgebra informática comúnmente utilizados para los aspectos más matemáticos de las aplicaciones informáticas científicas incluyen GNU Octave , Haskell , [33] Julia , [33] Maple , [34] Mathematica , [35] [36 ] [37] [38] [39] MATLAB , [40] [41] [42] Python (con biblioteca SciPy de terceros [43] [44] [45] ), Perl (con biblioteca PDL de terceros ), [ cita necesaria ] R , [46] Scilab , [47] [48] y TK Solver . Los aspectos más intensivos en computación de la informática científica a menudo utilizarán alguna variación de C o Fortran y bibliotecas de álgebra optimizadas como BLAS o LAPACK . Además, la computación paralela se utiliza mucho en la informática científica para encontrar soluciones a grandes problemas en un período de tiempo razonable. En este marco, el problema se divide en muchos núcleos en un solo nodo de CPU (como con OpenMP ), se divide en muchos nodos de CPU conectados en red (como con MPI ) o se ejecuta en una o más GPU (normalmente usando CUDA u OpenCL ).
Los programas de aplicación de ciencia computacional a menudo modelan condiciones cambiantes del mundo real, como el clima, el flujo de aire alrededor de un avión, las distorsiones de la carrocería de un automóvil en un accidente, el movimiento de las estrellas en una galaxia, un dispositivo explosivo, etc. Tales programas podrían crear una "malla lógica". ' en la memoria de la computadora donde cada elemento corresponde a un área en el espacio y contiene información sobre ese espacio relevante para el modelo. Por ejemplo, en los modelos meteorológicos , cada elemento puede ser un kilómetro cuadrado; con elevación del terreno, dirección actual del viento, humedad, temperatura, presión, etc. El programa calcularía el siguiente estado probable basándose en el estado actual, en pasos de tiempo simulados, resolviendo ecuaciones diferenciales que describen cómo opera el sistema, y luego repetiría el proceso. para calcular el siguiente estado. [ cita necesaria ]
En 2001 se organizó por primera vez la Conferencia Internacional sobre Ciencias Computacionales (ICCS) . Desde entonces, se organiza anualmente. ICCS es una conferencia de rango A en el ranking CORE . [49]
El Journal of Computational Science publicó su primer número en mayo de 2010. [50] [51] [52] El Journal of Open Research Software se lanzó en 2012 . [53] La iniciativa ReScience C , que se dedica a replicar resultados computacionales, se inició en GitHub en 2015. [54]
En algunas instituciones, se puede obtener una especialización en computación científica como "menor" dentro de otro programa (que puede tener diferentes niveles). Sin embargo, cada vez hay más programas de licenciatura , maestría y doctorado en ciencias computacionales. El programa de titulación conjunta, programa de maestría en ciencias computacionales de la Universidad de Amsterdam y la Vrije Universiteit en ciencias computacionales se ofreció por primera vez en 2004. En este programa, los estudiantes:
ETH Zurich ofrece una licenciatura y una maestría en Ciencias e Ingeniería Computacional. El título dota a los estudiantes de la capacidad de comprender problemas científicos y aplicar métodos numéricos para resolverlos. Las áreas de especialización incluyen Física, Química, Biología y otras disciplinas científicas y de ingeniería.
La Universidad George Mason fue una de las primeras pioneras en ofrecer un doctorado multidisciplinario Ph.D. programa en Ciencias Computacionales e Informática en 1992 que se centró en una serie de áreas de especialidad, incluida la bioinformática , la química computacional , los sistemas terrestres y los cambios globales, las matemáticas computacionales , la física computacional , las ciencias espaciales y la estadística computacional . [ cita necesaria ]
La Escuela de Ciencias Computacionales e Integrativas de la Universidad Jawaharlal Nehru (antigua Escuela de Tecnología de la Información [55] [ se necesita verificación ] ) también ofrece [ se necesita verificación ] un vibrante programa de maestría en ciencias computacionales con dos especialidades: Biología Computacional y Sistemas Complejos . [56]