[en] Parallel and distributed simulation is a powerful tool for developing realistic agent-based modeling and simulation (ABMS). ABMS can allow scientists to reach conclusions and gain knowledge about the system under study. But this is only possible if these simulations offer realistic results, meaning simulations whose results are validated in reality and that can be used for prediction or to explain some phenomenon. These simulations require reliable results through statistical approaches. In addition, they have a high computational complexity because thousands of agents are used in order to model them. For these reasons, this kind of simulation requires a long execution time. Consequently, one possible solution to solve these simulations is to use parallel and distributed simulations that take advantage of the powerful architecture available nowadays. Thus, for the advance of computing science, it is important that High Performance Computing (HPC) techniques, solutions and approaches be proposed and studied. In the literature, we can find some agent-based model tools that use HPC to execute agent-based modeling and simulations. However, none of these tools are designed to execute HPC experiments in order to propose new approaches, techniques and solutions for ABMS that required high performance solutions without great programming effort. In this thesis, we introduce a methodology to do research on HPC for complex agentbased models that demand high performance solutions. This methodology, named Care High Performance Simulation (HPS), enables researchers to: 1) develop techniques and solutions of high performance parallel and distributed simulations for agent-based models; and, 2) study, design and implement complex agent-based models that require high performance computing solutions. This methodology was designed to easily and quickly develop new ABMs, as well as to extend and implement new solutions for the main issues of parallel and distributed simulations such as: synchronization, communication, load and computing balancing, and partitioning algorithms in order to test and analyze. Also, we developed in Care HPS some agent-based models and HPC approaches and techniques which can be used by researchers in HPC for ABMs that required high performance solutions. We conducted some experiments with the aim of showing the completeness and functionality of this methodology and evaluate how the results can be useful. These experiments focus on: 1) presenting the results of our proposed HPC techniques and approaches which are used in Care HPS; 2) showing that the features of Care HPS reach the proposed aims; and, 3) presenting the scalability results of Care HPS. As a result, we show that Care HPS can be used as a scientific instrument for the advance of the agent-based parallel and distributed simulations field.

[es] La simulación paralela y distribuida es una potente herramienta para el desarrollo realista de modelos basados en agentes y su simulación (ABMS). Esta herramienta permite que científicos de diferentes áreas puedan realizar conclusiones y adquirir conocimientos acerca del sistema bajo estudio. Sin embargo, esto sólo es posible si las simulaciones realizadas ofrecen resultados realistas, es decir si los resultados se asemejan a la realidad y si estas simulaciones pueden ser utilizadas para la predicción o para explicar algún tipo de fenómeno emergente. Por ello, estas simulaciones requieren resultados confiables a través de métodos estadísticos y presentan una alta complejidad computacional debido a que miles de agentes independientes se utilizan para modelar el sistema. Por estas razónes, este tipo de simulación requiere de largos tiempos de ejecución y de gran potencia de cómputo. Una posible solución para resolver este tipo de simulaciones es la utilización de sistemas paralelos y distribuidos que aprovechan la potencia de la arquitectura subyacente disponible en las infraestructuras actuales y es importante, para el avance de la ciencia de la computación, el desarrollo de técnicas, algoritmos y enfoques que permitan analizar estos sistemas ejecutándose sobre infraestructuras de cómputo de altas prestaciones. En la literatura, se pueden encontrar algunas herramientas que permiten el modelado basados en agentes y que utilizan HPC pero ninguna de estas herramientas están diseñadas para ejecutar experimentos con el fin de incluir y analizar nuevos enfoques, técnicas y soluciones para ABMS que requieran un alto rendimiento y poco esfuerzo de programación. En el presente trabajo, se introduce una metodología para realizar investigaciones en modelos complejos basados en agentes que demandan soluciones de alto rendimiento (HPC). Esta metodología, llamada Care High Performance Simulation (HPS) permite a los investigadores: 1) desarrollar técnicas y soluciones de alto rendimiento y simulaciones distribuidas para modelos basados en agentes; y, 2) permite el estudio, diseño e implementación de modelos complejos basados en agentes que requieren soluciones de computación de alto rendimiento. Esta metodología ha sido diseñada para desarrollar de forma fácil y rápida nuevos ABM, así como para extender y aplicar nuevas soluciones a los diferentes módulos funcionales que afectan a una simulación paralela y distribuida, tales como la sincronización, la comunicación, la carga y el balance de la computación y/o los algoritmos de partición de datos. Dentro del presente trabajo, y como prueba de concepto, se han desarrollado además en Care HPS diferentes modelos basados en agentes y técnicas/algoritmos que pueden ser utilizados por los investigadores en ABMS y que requieran soluciones HPC para realizar sus investigaciones. Para validar la propuesta se han realizado un conjunto de experimentos con el objetivo de mostrar la completitud y funcionalidad de esta metodología y evaluar la bondad de los resultados obtenidos. Estos experimentos se centran en: 1) validar los resultados de las técnicas propuestas y enfoques que se utilizan en Care HPS; 2) mostrar que las características de diseño de Care HPS satisfacen los objetivos propuestos; y finalmente, 3) verificar los resultados de escalabilidad de Care HPS como infraestructura de simulación distribuida para modelos basados en agentes. En conclusión, Care HPS puede ser utilizado como instrumento científico en el desarrollo de modelos basado en agentes y en el área de simulaciones distribuida en arquitecturas HPC.