CUKr (CUDA Krylov)
Krylov-type iterative solvers are widely used in the field of finite element computation or for other problems where the matrix of the system to be solved is too large for direct methods to work. Their implementation is based on sparse-matrix vector multiplications (SPMV), dot products and vector updates, all of which are severely memory bounded, meaning that it takes much longer to bring data from memory to the processor than to actual do computations with it. As such, Krylov solvers have difficulty achieving even 10\% of CPU peak. With the large and widening performance and, more important, bandwidth gap between CPUs and GPUs, the HPC community has been looking more and more towards employing GPUs as accelerators.
Last generation GPUs provide around 1TFlops of single precision and around 75GFlops of double precision performance at a price comparable with the one of a commodity processor. This fact has lead to the term ``personal supercomputing'', in the sense that literally every researcher can build a machine with the power of a small supercomputer at a price comparable to that of an workstation. What stops most of the researchers from doing this is the lack of easy to use software.
CUKr (CUDA Krylov) is a solver package intended as a scalable framework for building Krylov solvers on GPU clusters. Inspired by PETSc, CUKr is intended to ease the development of GPU-accelerated Krylov solvers by abstracting out most of the difficulties encountered when dealing with GPUs. Additionally, the implementation style required for using multiple GPUs makes it very suitable for multicore/manycore. A solver written in CUKr can work unchanged on one or multiple nodes, inside which it can run on one or multiple GPUs or CPU cores or a combination of the two, using any desired combination of data formats, precisions and BLAS libraries. Selecting the run configuration can be done very easily, usually using command-line options.
MADS (Multi-Agent Diffusion Simulation) Framework
MADS is an agent based framework designed towards implementing innovation diffusion related simulation. Besides being close to the theory, the framework intends to streamline the simulation creation process by providing an efficient means of attaining simple, maintainable and readable software, easy code management, publishing and reuse. This is a very important asset, since this kind of work is usually done in teams and each simulation makes use of large amounts of data and forecasts.
MADS targets a wide range of researchers, as besides the problem of simulating the diffusion of emergent technologies, like fuel cell vehicles or cogeneration systems, for which MADS was originally designed, the study of the diffusion of new products and technologies is very important both for marketing and socio-economic analysis.
For more details see project page