ECATI - Atas de Conferências Internacionais
URI permanente para esta coleção:
Navegar
Percorrer ECATI - Atas de Conferências Internacionais por assunto "COMPUTAÇÃO DE ALTO DESEMPENHO"
A mostrar 1 - 2 de 2
Resultados por página
Opções de ordenação
Item Assessing the feasibility of OpenCL CPU implementations for agent-based simulations(AGENT-BASED MODELING, 2017-05) Fachada, Nuno; Rosa, Agostinho C.; Escola de Comunicação, Arquitetura, Artes e Tecnologias da InformaçãoAgent-based modeling (ABM) is a bottom-up modeling approach, where each entity of the system being modeled is uniquely represented as a self-determining agent. Large scale emergent behavior in ABMs is population sensitive. As such, it is advisable that the number of agents in a simulation is able to reflect the reality of the system being modeled. This means that in domains such as social modeling, ecology, and biology, systems can contain millions or billions of individuals. Such large scale simulations are only feasible in non-distributed scenarios when the computational power of commodity processors, such as GPUs and multi-core CPUs, is fully exploited. In this paper we evaluate the feasibility of using CPU-oriented OpenCL for high-performance simulations of agent-based models. We compare a CPU-oriented OpenCL implementation of a reference ABM against a parallel Java version of the same model. We show that there are considerable gains in using CPU-based OpenCL for developing and implementing ABMs, with speedups up to 10x over the parallel Java version on a 10-core hyper-threaded CPU.Item cf4ocl: A C framework for OpenCL(Elsevier, 2017) Fachada, Nuno; Lopes, Vitor V.; Martins, Rui C.; Rosa, Agostinho C.; Escola de Comunicação, Arquitetura, Artes e Tecnologias da InformaçãoOpenCL is an open standard for parallel programming of heterogeneous compute devices, such as GPUs, CPUs, DSPs or FPGAs. However, the verbosity of its C host API can hinder application development. In this paper we present cf4ocl, a software library for rapid development of OpenCL programs in pure C. It aims to reduce the verbosity of the OpenCL API, offering straightforward memory management, integrated profiling of events (e.g., kernel execution and data transfers), simple but extensible device selection mechanism and user-friendly error management. We compare two versions of a conceptual application example, one based on cf4ocl, the other developed directly with the OpenCL host API. Results show that the former is simpler to implement and offers more features, at the cost of an effectively negligible computational overhead. Additionally, the tools provided with cf4ocl allowed for a quick analysis on how to optimize the application.