  Recent advances in computing architectures and networking are bringing
parallel computing systems to the masses so increasing the number of potential
users of these kinds of systems. In particular, two important technological
evolutions are happening at the ends of the computing spectrum: at the "small"
scale, processors now include an increasing number of independent execution
units (cores), at the point that a mere CPU can be considered a parallel
shared-memory computer; at the "large" scale, the Cloud Computing paradigm
allows applications to scale by offering resources from a large pool on a
pay-as-you-go model. Multi-core processors and Clouds both require applications
to be suitably modified to take advantage of the features they provide. In this
paper, we analyze the state of the art of parallel and distributed simulation
techniques, and assess their applicability to multi-core architectures or
Clouds. It turns out that most of the current approaches exhibit limitations in
terms of usability and adaptivity which may hinder their application to these
new computing architectures. We propose an adaptive simulation mechanism, based
on the multi-agent system paradigm, to partially address some of those
limitations. While it is unlikely that a single approach will work well on both
settings above, we argue that the proposed adaptive mechanism has useful
features which make it attractive both in a multi-core processor and in a Cloud
system. These features include the ability to reduce communication costs by
migrating simulation components, and the support for adding (or removing) nodes
to the execution architecture at runtime. We will also show that, with the help
of an additional support layer, parallel and distributed simulations can be
executed on top of unreliable resources.
