Computação científica
A ciência computacional, também conhecida como computação científica, é um campo de rápido crescimento que usa recursos de computação avançados para entender e resolver problemas complexos. É uma área da ciência que abrange muitas disciplinas, mas em sua essência, envolve o desenvolvimento de modelos e simulações para entender os sistemas naturais.
- Algoritmos (numéricos e não numéricos): modelos matemáticos, modelos computacionais e simulações de computador desenvolvidos para resolver problemas de ciência (por exemplo, biológicos, físicos e sociais), engenharia e humanidades
- Hardware de computador que desenvolve e otimiza o hardware de sistema avançado, firmware, rede e componentes de gerenciamento de dados necessários para resolver problemas exigentes computacionalmente
- A infraestrutura de computação que dá suporte tanto à resolução de problemas da ciência e da engenharia quanto ao desenvolvimento da ciência da computação e da informação
No uso prático, é tipicamente a aplicação de simulação de computador e outras formas de computação a partir de análise numérica e ciência da computação teórica para resolver problemas em várias disciplinas científicas. O campo é diferente da teoria e da experiência de laboratório, que são as formas tradicionais de ciência e engenharia. A abordagem da computação científica é obter entendimento, principalmente por meio da análise de modelos matemáticos implementados em computadores. Cientistas e engenheiros desenvolvem programas de computador, softwares aplicativos, que modelam os sistemas em estudo e executam esses programas com vários conjuntos de parâmetros de entrada. A essência da computação científica é a aplicação de algoritmos numéricos[1] e/ou matemática computacional. Em alguns casos, esses modelos requerem uma grande quantidade de cálculos (geralmente de ponto flutuante) e geralmente são executados em supercomputadores ou plataformas de computação distribuída.
O cientista computacional
editarO termo cientista computacional é usado para descrever alguém hábil em computação científica. Essa pessoa geralmente é um cientista, um engenheiro ou um matemático aplicado que aplica a computação de alto desempenho de maneiras diferentes para fazer avançar o estado da arte em suas respectivas disciplinas aplicadas em física, química ou engenharia.
A computação científica é agora comumente considerada um terceiro modo de ciência, complementando e adicionando à experimentação/observação e teoria (veja a imagem à direita).[2] Aqui, definimos um sistema como uma fonte potencial de dados,[3] um experimento como um processo de extração de dados de um sistema exercendo-o por meio de suas entradas[4] e um modelo (M) para um sistema (S) e um experimento (E) como qualquer coisa ao qual E pode ser aplicado a fim de responder a perguntas sobre S.[5] Um cientista computacional deve ser capaz de:
- reconhecer problemas complexos
- conceitualizar adequadamente o sistema que contém esses problemas
- projetar uma estrutura de algoritmos adequados para estudar este sistema: a simulação
- escolher uma infraestrutura de computação adequada (computação paralela/computação em grade/supercomputadores)
- deste modo, maximizar o poder computacional da simulação
- avaliar em que nível o resultado da simulação se assemelha aos sistemas: o modelo é validado
- ajustar a conceituação do sistema em conformidade
- repetir o ciclo até que um nível adequado de validação seja obtido: os cientistas computacionais confiam que a simulação gere resultados adequadamente realistas para o sistema, nas condições estudadas
Na verdade, um esforço substancial em ciências computacionais tem sido dedicado ao desenvolvimento de algoritmos, à implementação eficiente em linguagens de programação e à validação de resultados computacionais. Uma coleção de problemas e soluções em computação científica pode ser encontrada em Steeb, Hardy, Hardy e Stoop (2004).[6]
Filósofos da ciência abordaram a questão de em que grau a computação científica se qualifica como ciência, entre eles Humphreys[7] e Gelfert.[8] Eles abordam a questão geral da epistemologia: como podemos obter um insight a partir dessas abordagens da computação científica. Tolk[9] usa esses insights para mostrar as restrições epistemológicas da pesquisa de simulação baseada em computador. Como a computação científica usa modelos matemáticos que representam a teoria subjacente de forma executável, em essência, eles aplicam modelagem (construção de teoria) e simulação (implementação e execução). Embora a simulação e a computação científica sejam nossas maneiras mais sofisticadas de expressar nosso conhecimento e compreensão, elas também vêm com todas as restrições e limites já conhecidos para soluções computacionais.
Aplicações da computação científica
editarOs domínios de problema para ciência computacional/computação científica incluem:
Computação científica preditiva
editarA computação científica preditiva é uma disciplina científica que visa a formulação, calibração, solução numérica e validação de modelos matemáticos projetados para prever aspectos específicos de eventos físicos, dadas as condições iniciais e de contorno e um conjunto de parâmetros de caracterização e incertezas associadas.[10] Em casos típicos, a declaração preditiva é formulada em termos de probabilidades. Por exemplo, dado um componente mecânico e uma condição de carregamento periódico, “a probabilidade é de (por exemplo) 90% de que o número de ciclos na falha (Nf) estará no intervalo N1<Nf<N2”.[11]
Sistemas complexos urbanos
editarEm 2015, mais da metade da população mundial vivia em cidades. Em meados do século 21, estima-se que 75% da população mundial será urbana. Esse crescimento urbano está focado nas populações urbanas de países em desenvolvimento, onde os moradores das cidades mais que dobrarão, passando de 2,5 bilhões em 2009 para quase 5,2 bilhões em 2050. Cidades são sistemas enormes e complexos criados por humanos, feitos de humanos e governados por humanos. Tentar prever, compreender e de alguma forma moldar o desenvolvimento das cidades no futuro requer pensamento complexo e requer modelos computacionais e simulações para ajudar a mitigar desafios e possíveis desastres. O foco da pesquisa em sistemas complexos urbanos é, por meio de modelagem e simulação, construir uma maior compreensão da dinâmica das cidades e ajudar na preparação para a urbanização que se aproxima.
Finanças computacionais
editarNos mercados financeiros de hoje, grandes volumes de ativos interdependentes são negociados por um grande número de participantes do mercado que interagem em diferentes locais e fusos horários. Seu comportamento é de complexidade sem precedentes e a caracterização e medição do risco inerente a este conjunto altamente diversificado de instrumentos é tipicamente baseada em modelos matemáticos e computacionais complicados. A resolução desses modelos exatamente e de forma fechada, mesmo no nível de um único instrumento, normalmente não é possível e, portanto, temos que procurar algoritmos numéricos eficientes. Isso se tornou ainda mais urgente e complexo recentemente, já que a crise de crédito demonstrou claramente o papel dos efeitos em cascata que vão de instrumentos únicos a carteiras de instituições únicas, e até mesmo à rede de negociação interconectada. Compreender isso requer uma abordagem multiescala e holística, em que fatores de risco interdependentes, como risco de mercado, crédito e liquidez, são modelados simultaneamente e em diferentes escalas interconectadas.
Biologia computacional
editarNovos desenvolvimentos em biotecnologia estão revolucionando a biologia e a pesquisa biomédica. Exemplos dessas técnicas são sequenciamento de alto rendimento, PCR quantitativo de alto rendimento, imageamento intracelular, hibridização in situ da expressão gênica, técnicas de imageamento tridimensional como microscopia de fluorescência de folha de luz e projeção óptica, tomografia (micro)-computadorizada. Dada a enorme quantidade de dados complicados gerados por essas técnicas, sua interpretação significativa e até mesmo seu armazenamento constituem grandes desafios que exigem novas abordagens. Indo além das abordagens atuais de bioinformática, a biologia computacional precisa desenvolver novos métodos para descobrir padrões significativos nesses grandes conjuntos de dados. A reconstrução de redes de genes baseada em modelos pode ser usada para organizar os dados de expressão de genes de uma forma sistemática e para orientar a coleta de dados futuros. Um grande desafio aqui é entender como a regulação gênica controla processos biológicos fundamentais, como a biomineralização e embriogênese. Os subprocessos como a regulação gênica, moléculas orgânicas interagindo com o processo de deposição de minerais, processos celulares, fisiologia e outros processos nos níveis dos tecidos e do ambiente estão ligados. Em vez de serem dirigidas por um mecanismo de controle central, a biomineralização e a embriogênese podem ser vistas como um comportamento emergente resultante de um sistema complexo no qual vários subprocessos em escalas temporais e espaciais muito diferentes (variando de nanômetro e nanossegundos a metros e anos) estão conectado em um sistema multiescala. Uma das poucas opções disponíveis para entender tais sistemas é desenvolver um modelo multiescala do sistema.
Teoria de sistemas complexos
editarUsando a teoria da informação, dinâmica de não equilíbrio e simulações explícitas, a teoria dos sistemas computacionais tenta descobrir a verdadeira natureza dos sistemas adaptativos complexos.
Computação científica em engenharia
editarA engenharia e ciência computacional (CSE) é uma disciplina relativamente nova que lida com o desenvolvimento e aplicação de modelos computacionais e simulações, muitas vezes juntamente com computação de alto desempenho, para resolver problemas físicos complexos que surgem na análise de engenharia e design (engenharia computacional) bem como fenômenos naturais (ciência computacional). A CSE foi descrita como a "terceiro forma de descoberta" (depois da teoria e da experimentação).[12] Em muitos campos, a simulação por computador é parte integrante e, portanto, essencial para os negócios e a pesquisa. A simulação por computador possibilita a entrada em campos que são inacessíveis para a experimentação tradicional ou onde a realização de pesquisas empíricas tradicionais é proibitivamente cara. A CSE não deve ser confundida com ciência da computação pura, nem com engenharia da computação, embora um amplo domínio na primeira seja usado na CSE (por exemplo, certos algoritmos, estruturas de dados, programação paralela, computação de alto desempenho) e alguns problemas da última possam ser modelados e resolvidos com métodos da CSE (como área de aplicação).
Métodos e algoritmos
editarOs algoritmos e métodos matemáticos usados em computação científica são variados. Os métodos comumente aplicados incluem:
- Computação algébrica,[13][14][15][16] incluindo a computação simbólica em campos tais como a estatística, solução de equações, álgebra, cálculo, geometria, álgebra linear, análise tensorial (álgebra multilinear), otimização
- Análise numérica,[17][18][19][20] incluindo a obtenção de derivadas por diferenças finitas
- Aplicação da série de Taylor como série convergente e assintótica
- Cálculo de derivadas por diferenciação automática (AD)
- Método de elementos finitos para a resolução de EDP[21][22]
- Aproximações de ordem elevada por série de Taylor e extrapolação de Richardson
- Métodos de integração[23] sobre uma malha uniforme: regra do retângulo (também chamada de regra do ponto médio), regra dos trapézios, regra de Simpson
- Métodos de Runge-Kutta para resolução de equações diferenciais ordinárias
- Método de Newton[24]
- Transformada Discreta de Fourier
- Métodos de Monte Carlo[25][26]
- Álgebra linear numérica,[27][28][29] incluindo algoritmos de decomposição e de autovalores
- Programação linear[30][31]
- Ramificar e cortar
- Ramificar e limitar
- Dinâmica molecular, dinâmica molecular de Car–Parrinello
- Mapeamento do espaço
- Métodos de passo de tempo para sistemas dinâmicos
Tanto historicamente como na atualidade, o Fortran continua popular para a maioria das aplicações de computação científica.[32][33] Entre as linguagens de programação e sistemas algébricos computacionais comumente usados para os aspectos mais matemáticos de aplicações de computação científica estão: GNU Octave, Haskell,[32] Julia,[32] Maple,[33] Mathematica,[34][35][36][37][38] MATLAB,[39][40][41] Python (com biblioteca SciPy de terceiros[42][43][44]), Perl (com biblioteca PDL de terceiros),[carece de fontes] R,[45] Scilab,[46][47] e TK Solver. Os aspectos computacionalmente mais intensivos da computação científica costumam usar alguma variação de C ou Fortran e bibliotecas de álgebra otimizadas, como BLAS ou LAPACK. Além disso, a computação paralela é amplamente utilizada na computação científica para obter soluções de grandes problemas em um período de tempo razoável. Nesta estrutura, o problema é abordado de uma das seguintes formas: dividindo-o em muitos núcleos de um único nó de CPU (como com OpenMP), dividindo-o em muitos nós de CPU interligados em rede (como com MPI) ou é executando-o em uma ou mais GPUs (normalmente usando um CUDA ou OpenCL ).
Os programas de aplicação de computação científica frequentemente modelam condições do mundo real que mudam com o tempo, tais como clima, fluxo de ar ao redor de um avião, distorções do corpo de automóveis em um acidente, o movimento das estrelas em uma galáxia, um dispositivo explosivo, etc. Esses programas podem criar uma 'malha lógica' na memória do computador em que cada item corresponde a uma área no espaço e contém informações sobre esse espaço relevantes para o modelo. Por exemplo, em modelos meteorológicos, cada item pode ter um quilômetro quadrado; com a elevação do solo, direção do vento atual, umidade, temperatura, pressão, etc. O programa calcularia o próximo estado provável com base no estado atual, em passos de tempo simulados, resolvendo equações diferenciais que descrevem como o sistema opera; e repetiria o processo para calcular o próximo estado.
Conferências e periódicos
editarNo ano de 2001, foi organizada pela primeira vez a Conferência Internacional em Computação Científica (ICCS). Desde então, ela é organizada anualmente. A ICCS é uma conferência de nível A na classificação CORE.
O periódico internacional Journal of Computational Science publicou sua primeira edição em maio de 2010.[48][49][50] Uma nova iniciativa foi lançada em 2012, o Journal of Open Research Software.[51] Em 2015, o ReScience C[52] dedicado à replicação de resultados computacionais foi iniciado no GitHub.
Educação
editarEm algumas instituições, uma especialização em computação científica pode ser obtida como um "menor" em outro programa (que pode estar em níveis variados). No entanto, existem cada vez mais programas de bacharelado, mestrado e doutorado em computação científica. O programa de mestrado conjunto em ciência da computação da Universidade de Amsterdã e da Vrije Universiteit em computação científica foi oferecido pela primeira vez em 2004. Neste programa, os alunos:
- aprendem a construir modelos computacionais a partir de observações da vida real;
- desenvolvem habilidades para transformar esses modelos em estruturas computacionais e realizar simulações em grande escala;
- aprendem a teoria que dará uma base sólida para a análise de sistemas complexos;
- aprendem a analisar os resultados de simulações em um laboratório virtual usando algoritmos numéricos avançados.
George Mason University foi um dos pioneiros a oferecer um programa de doutorado multidisciplinar em Ciências da Computação e Informática em 1992, que se concentrou em uma série de áreas de especialidade, incluindo bioinformática, química computacional, sistemas terrestres e mudanças globais, matemática computacional, física computacional, ciências espaciais e estatísticas computacionais
A escola de ciências computacionais e integrativas da Universidade de Jawaharlal Nehru (antiga Escola de Tecnologia da Informação[53]) também oferece um programa de mestrado para computação científica com duas especialidades, a saber - Biologia Computacional e Sistemas Complexos.[54]
Áreas relacionadas
editar- Bioinformática
- Dinâmica molecular de Car-Parrinello
- Quimioinformática
- Quimiometria
- Arqueologia computacional
- Astrofísica computacional
- Biologia computacional
- Química computacional
- Ciência dos materiais computacional
- Economia computacional
- Eletromagnetismo computacional
- Engenharia computacional
- Finanças computacionais
- Dinâmica de fluidos computacional
- Forense computacional
- Geofísica computacional
- História computacional
- Informática computacional
- Inteligência computacional
- Direito computacional
- Lingüística computacional
- Matemática computacional
- Mecânica computacional
- Neurociência computacional
- Física de partículas computacional
- Física computacional
- Sociologia computacional
- Estatística computacional
- Sustentabilidade computacional
- Álgebra computacional
- Simulação de computador
- Modelagem financeira
- Sistema de informações geográficas (GIS)
- Computação de alto desempenho
- Aprendizado de máquina
- Análise de redes
- Neuroinformática
- Álgebra linear numérica
- Previsão numérica do tempo
- Reconhecimento de padrões
- Visualização científica
- Simulação
Ver também
editar- Simulações de computador na ciência
- Ciência e engenharia computacional
- Comparação de sistemas de álgebra computacional
- Lista de software de modelagem molecular
- Lista de software de análise numérica
- Lista de pacotes estatísticos
- Linha do tempo da computação científica
- Realidade simulada
- Extensões para computação científica (XSC)
Referências
editar- ↑ Nonweiler T. R., 1986. Computational Mathematics: An Introduction to Numerical Approximation, John Wiley and Sons
- ↑ Graduate Education for Computational Science and Engineering.Siam.org, Society for Industrial and Applied Mathematics (SIAM) website; accessed Feb 2013.
- ↑ Siegler, Bernard (1976). Theory of Modeling and Simulation. [S.l.: s.n.]
- ↑ Cellier, François (1990). Continuous System Modelling. [S.l.: s.n.]
- ↑ Minski, Marvin (1965). Models,Minds, Machines. [S.l.: s.n.]
- ↑ Steeb W.-H., Hardy Y., Hardy A. and Stoop R., 2004. Problems and Solutions in Scientific Computing with C++ and Java Simulations, World Scientific Publishing. ISBN 981-256-112-9
- ↑ Humphreys, Paul. Extending ourselves: Computational science, empiricism, and scientific method. Oxford University Press, 2004.
- ↑ Gelfert, Axel. 2016. How to do science with models: A philosophical primer. Cham: Springer.
- ↑ Tolk, Andreas. "Learning Something Right from Models That Are Wrong: Epistemology of Simulation." In Concepts and Methodologies for Modeling and Simulation, edited by L. Yilmaz, pp. 87-106, Cham: Springer International Publishing, 2015.
- ↑ Oden, J.T., Babuška, I. and Faghihi, D., 2017. Predictive computational science: Computer predictions in the presence of uncertainty. Encyclopedia of Computational Mechanics. Second Edition, pp. 1-26.
- ↑ Szabó B, Actis R and Rusk D. Validation of notch sensitivity factors. Journal of Verification, Validation and Uncertainty Quantification. 4 011004, 2019
- ↑ «Computational Science and Engineering Program: Graduate Student Handbook» (PDF). cseprograms.gatech.edu. Setembro de 2009. Consultado em 26 de agosto de 2017. Cópia arquivada (PDF) em 14 de outubro de 2014
- ↑ Von Zur Gathen, J., & Gerhard, J. (2013). Modern computer algebra. Cambridge University Press.
- ↑ Geddes, K. O., Czapor, S. R., & Labahn, G. (1992). Algorithms for computer algebra. Springer Science & Business Media.
- ↑ Albrecht, R. (2012). Computer algebra: symbolic and algebraic computation (Vol. 4). Springer Science & Business Media.
- ↑ Mignotte, M. (2012). Mathematics for computer algebra. Springer Science & Business Media.
- ↑ Stoer, J., & Bulirsch, R. (2013). Introduction to numerical analysis. Springer Science & Business Media.
- ↑ Conte, S. D., & De Boor, C. (2017). Elementary numerical analysis: an algorithmic approach. Society for Industrial and Applied Mathematics.
- ↑ Greenspan, D. (2018). Numerical Analysis. CRC Press.
- ↑ Linz, P. (2019). Theoretical numerical analysis. Courier Dover Publications.
- ↑ Brenner, S., & Scott, R. (2007). The mathematical theory of finite element methods (Vol. 15). Springer Science & Business Media.
- ↑ Oden, J. T., & Reddy, J. N. (2012). An introduction to the mathematical theory of finite elements. Courier Corporation.
- ↑ Davis, P. J., & Rabinowitz, P. (2007). Methods of numerical integration. Courier Corporation.
- ↑ Peter Deuflhard, Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms, Second printed edition. Series Computational Mathematics 35, Springer (2006)
- ↑ Hammersley, J. (2013). Monte carlo methods. Springer Science & Business Media.
- ↑ Kalos, M. H., & Whitlock, P. A. (2009). Monte carlo methods. John Wiley & Sons.
- ↑ Demmel, J. W. (1997). Applied numerical linear algebra. SIAM.
- ↑ Ciarlet, P. G., Miara, B., & Thomas, J. M. (1989). Introduction to numerical linear algebra and optimization. Cambridge University Press.
- ↑ Trefethen, Lloyd; Bau III, David (1997). Numerical Linear Algebra (1st ed.). Philadelphia: SIAM.
- ↑ Vanderbei, R. J. (2015). Linear programming. Heidelberg: Springer.
- ↑ Gass, S. I. (2003). Linear programming: methods and applications. Courier Corporation.
- ↑ a b c Phillips, Lee (7 de maio de 2014). «Scientific computing's future: Can any coding language top a 1950s behemoth?». Ars Technica. Consultado em 8 de março de 2016
- ↑ a b Landau, Rubin (7 de maio de 2014). «A First Course in Scientific Computing» (PDF). Princeton University. Consultado em 8 de março de 2016
- ↑ Mathematica 6 Scientific Computing World, May 2007
- ↑ Maeder, R. E. (1991). Programming in mathematica. Addison-Wesley Longman Publishing Co., Inc..
- ↑ Stephen Wolfram. (1999). The MATHEMATICA® book, version 4. Cambridge University Press.
- ↑ Shaw, W. T., & Tigg, J. (1993). Applied Mathematica: getting started, getting it done. Addison-Wesley Longman Publishing Co., Inc..
- ↑ Marasco, A., & Romano, A. (2001). Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations; with a CD-ROM. Springer Science & Business Media.
- ↑ Quarteroni, A., Saleri, F., & Gervasio, P. (2006). Scientific computing with MATLAB and Octave. Berlin: Springer.
- ↑ Gander, W., & Hrebicek, J. (Eds.). (2011). Solving problems in scientific computing using Maple and Matlab®. Springer Science & Business Media.
- ↑ Barnes, B., & Fulford, G. R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB. Chapman and Hall/CRC.
- ↑ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
- ↑ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
- ↑ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
- ↑ Ihaka, R., & Gentleman, R. (1996). R: a language for data analysis and graphics. Journal of computational and graphical statistics, 5(3), 299-314.
- ↑ Bunks, C., Chancelier, J. P., Delebecque, F., Goursat, M., Nikoukhah, R., & Steer, S. (2012). Engineering and scientific computing with Scilab. Springer Science & Business Media.
- ↑ Thanki, R. M., & Kothari, A. M. (2019). Digital image processing using SCILAB. Springer International Publishing.
- ↑ Sloot, Peter; Coveney, Peter; Dongarra, Jack (2010). «Redirecting». Journal of Computational Science. 1: 3–4. doi:10.1016/j.jocs.2010.04.003
- ↑ Seidel, Edward; Wing, Jeannette M. (2010). «Redirecting». Journal of Computational Science. 1: 1–2. doi:10.1016/j.jocs.2010.04.004
- ↑ Sloot, Peter M.A. (2010). «Computational science: A kaleidoscopic view into science». Journal of Computational Science. 1. 189 páginas. doi:10.1016/j.jocs.2010.11.001
- ↑ The Journal of Open Research Software ; announced at software.ac.uk/blog/2012-03-23-announcing-journal-open-research-software-software-metajournal
- ↑ Rougier, Nicolas P.; Hinsen, Konrad; Alexandre, Frédéric; Arildsen, Thomas; Barba, Lorena A.; Benureau, Fabien C.Y.; Brown, C. Titus; Buyl, Pierre de; Caglayan, Ozan (dezembro de 2017). «Sustainable computational science: the ReScience initiative». PeerJ Comput Sci. 3. Bibcode:2017arXiv170704393R. arXiv:1707.04393 . doi:10.7717/peerj-cs.142
- ↑ «SCIS | Welcome to Jawaharlal Nehru University»
- ↑ «SCIS: Program of Study | Welcome to Jawaharlal Nehru University»
Fontes adicionais
editar- E. Gallopoulos e A. Sameh, "CSE: Conteúdo e Produto". IEEE Computational Science and Engineering Magazine, 4 (2): 39-43 (1997)
- G. Hager e G. Wellein, Introdução à Computação de Alto Desempenho para Cientistas e Engenheiros, Chapman e Hall (2010)
- AK Hartmann, Practical Guide to Computer Simulations, World Scientific (2009)
- Journal Computational Methods in Science and Technology (acesso aberto), Polish Academy of Sciences
- Journal Computational Science and Discovery, Institute of Physics
- RH Landau, CC Bordeianu e M. Jose Paez, A Survey of Computational Physics: Introductory Computational Science, Princeton University Press (2008)
Ligações externas
editar- John von Neumann-Institut for Computing (NIC) em Juelich (Alemanha)
- O Centro Nacional de Ciência da Computação do Laboratório Nacional de Oak Ridge
- Centro de Simulação e Modelagem da George Mason University
- Materiais Educacionais para Estudos Computacionais de Graduação
- Ciência da Computação nos Laboratórios Nacionais
- Bacharel em Ciência da Computação, Universidade de Medellin, Colômbia, América do Sul
- Laboratório de Pesquisa de Sistemas de Otimização de Simulação (SOS), Universidade McMaster, Hamilton, ON
- Ciências da Computação e Informática, Programa de Doutorado, George Mason University