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, y más específicamente de las Ciencias de la Computación , que utiliza capacidades computacionales avanzadas para comprender y resolver problemas físicos complejos. Si bien esta discusión generalmente se extiende a la Computación Visual , este campo de estudio de investigación generalmente incluirá las siguientes categorizaciones de investigación.
En la práctica, se trata típicamente de la aplicación de la simulación por ordenador 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 la ciencia y la ingeniería . El enfoque de la informática científica consiste en obtener conocimientos a través del análisis de modelos matemáticos implementados en ordenadores . 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 a menudo se ejecutan en supercomputadoras o plataformas informáticas distribuidas . [ verificación necesaria ]
El término científico computacional se utiliza para describir a una persona experta en computación científica. Esta 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 hacer avanzar 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 requerida ] , que complementa y agrega 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 ejercié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 puede aplicar para responder preguntas sobre S . [5] Un científico computacional debe ser capaz de:
Se ha dedicado un esfuerzo sustancial 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 recopilación de problemas y soluciones en ciencias computacionales. [6]
Los filósofos de la ciencia se plantearon la cuestión de hasta qué punto la ciencia computacional puede considerarse ciencia, entre ellos Humphreys [7] y Gelfert [8] . Abordaron la cuestión general de la epistemología: ¿cómo se puede obtener información de estos enfoques de la ciencia computacional? Tolk [9] utiliza estos conocimientos para mostrar las limitaciones epistemológicas de la investigación de simulación basada en computadora. 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 requerida ]
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 condiciones iniciales y de contorno, y un conjunto de parámetros característicos 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 el momento de la falla (Nf) esté en el intervalo N1<Nf<N2". [11]
Las ciudades son sistemas enormemente complejos creados por seres humanos, compuestos por seres humanos y gobernados por seres humanos. Intentar predecir, comprender y, de algún modo, 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 los posibles desastres. El objetivo de la investigación en sistemas urbanos complejos es, a través del modelado y la simulación, generar una mayor comprensión de la dinámica de las ciudades y ayudar a prepararse para la urbanización venidera . [ cita requerida ]
En los mercados financieros , un gran número de participantes del mercado que interactúan entre sí 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 altamente diverso de instrumentos se basa típicamente en modelos matemáticos y computacionales complicados . Resolver estos modelos exactamente en forma cerrada, incluso a nivel de un solo instrumento, normalmente no es posible y, por lo tanto, tenemos que buscar algoritmos numéricos eficientes . Esto se ha vuelto aún más urgente y complejo recientemente, ya que la crisis crediticia [ ¿cuál? ] ha demostrado claramente [ ¿según quién? ] el papel de los efectos en cascada [ ¿cuál? ] que van desde instrumentos individuales a carteras de instituciones individuales e incluso a la red comercial interconectada. Comprender esto requiere un enfoque multiescalar y holístico donde los factores de riesgo interdependientes, como el riesgo de mercado, crédito y liquidez, se modelan simultáneamente y en diferentes escalas interconectadas. [ cita requerida ]
Los nuevos y apasionantes 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 , la obtención de imágenes intracelulares, la hibridación in situ de la expresión génica, las técnicas de obtención de imágenes tridimensionales como la microscopía de fluorescencia de lámina de luz y la tomografía computarizada de proyección óptica (micro) . Dadas las enormes cantidades de datos complicados que se generan mediante estas técnicas, su interpretación significativa e incluso su almacenamiento constituyen grandes desafíos 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 basada en modelos de redes genéticas se puede utilizar para organizar los datos de expresión génica de forma sistemática y para guiar la recopilación de datos en el futuro. Un desafío importante aquí es comprender cómo la regulación génica controla procesos biológicos fundamentales como la biomineralización y la embriogénesis . Los subprocesos como la regulación génica , 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 considerarse como un comportamiento emergente que resulta de un sistema complejo en el que varios subprocesos en escalas temporales y espaciales muy diferentes (que van desde nanómetros y nanosegundos hasta metros y años) están conectados en un sistema multiescala. Una de las pocas opciones disponibles [ ¿cuáles? ] para comprender tales sistemas es desarrollar un modelo multiescala del sistema. [ cita requerida ]
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 requerida ]
La ciencia e ingeniería computacional (CSE) es una disciplina relativamente nueva [ cuantificar ] que se ocupa del desarrollo y la aplicación de modelos computacionales y simulaciones, a menudo acoplados 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 CSE ha sido aceptada entre científicos, ingenieros y académicos como el "tercer modo de descubrimiento" (junto a la teoría y la experimentación). [12] En muchos campos, 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 a campos que son inaccesibles a la experimentación tradicional o donde realizar investigaciones empíricas tradicionales es prohibitivamente costoso. La CSE no debe confundirse con la ciencia informática pura ni con la ingeniería informática , aunque un amplio dominio de la primera se utiliza en la CSE (por ejemplo, ciertos algoritmos, estructuras de datos, programación paralela, computación de alto rendimiento), y algunos problemas de la segunda pueden modelarse y resolverse con métodos de CSE (como un área de aplicación). [ cita requerida ]
Los algoritmos y métodos matemáticos que se utilizan en la ciencia computacional son variados. Los métodos que se aplican comúnmente incluyen:
Históricamente y hoy, Fortran sigue siendo popular para la mayoría de las aplicaciones de computación científica. [32] [33] Otros lenguajes de programación y sistemas de álgebra computacional comúnmente utilizados para los aspectos más matemáticos de las aplicaciones de computación científica incluyen GNU Octave , Haskell , [32 ] Julia , [32] Maple , [33] Mathematica , [34] [35] [ 36] [37] [38] MATLAB , [39] [40] [41] Python (con la biblioteca SciPy de terceros , [42] [43] [44] ), Perl (con la biblioteca PDL de terceros ), [ cita requerida ] R , [45] Scilab , [46] [47] y TK Solver . Los aspectos computacionalmente más intensivos de la computación científica a menudo usará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 computación científica para encontrar soluciones a grandes problemas en un 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 utilizando CUDA u OpenCL ).
Los programas de aplicación de la 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 choque, el movimiento de las estrellas en una galaxia, un dispositivo explosivo, etc. Dichos programas pueden 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 próximo estado probable en función del estado actual, en pasos de tiempo simulados, resolviendo ecuaciones diferenciales que describen cómo funciona el sistema y luego repetiría el proceso para calcular el próximo estado. [ cita requerida ]
En 2001 se organizó por primera vez la Conferencia Internacional sobre Ciencias Computacionales (ICCS) . Desde entonces, se ha organizado anualmente. La ICCS es una conferencia de rango A en el ranking CORE . [48]
El Journal of Computational Science publicó su primer número en mayo de 2010. [49] [50] [51] El Journal of Open Research Software se lanzó en 2012. [ 52] La iniciativa ReScience C , dedicada a replicar resultados computacionales, se inició en GitHub en 2015. [53]
En algunas instituciones, se puede obtener una especialización en computación científica como una "especialización menor" dentro de otro programa (que puede ser de distintos niveles). Sin embargo, cada vez hay más programas de licenciatura , maestría y doctorado en ciencias computacionales. El programa de maestría en ciencias computacionales de grado conjunto de la Universidad de Ámsterdam y la Vrije Universiteit se ofreció por primera vez en 2004. En este programa, los estudiantes:
La ETH de Zúrich ofrece una licenciatura y un máster en Ciencias e Ingeniería Computacional. La titulación capacita a los estudiantes para 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 ofrece un programa de doctorado multidisciplinario en Ciencias Computacionales e Informática desde 1992. [54]
La Escuela de Ciencias Computacionales e Integrativas de la Universidad Jawaharlal Nehru (antigua Escuela de Tecnología de la Información [55] [ verificación necesaria ] ) también ofrece [ verificación necesaria ] un vibrante programa de maestría en ciencias computacionales con dos especialidades: Biología Computacional y Sistemas Complejos . [56]