Simulation techniques have become a powerful tool for deciding the best starting conditions on pay-as-you-go scenarios. This is the case of public cloud infrastructures, where a given number and type of virtual machines (in short VMs) are instantiated during a specified time, being this reflected in the final budget. With this in mind, this paper introduces and validates iCanCloud, a novel simulator of cloud infrastruc-tures with remarkable features such as flexibility, scalability, performance and usability. Further-more, the iCanCloud simulator has been built on the following design principles: (1) it's targeted to conduct large experiments, as opposed to oth-ers simulators from literature; (2) it provides a flexible and fully customizable global hypervisor for integrating any cloud brokering policy; (3) it reproduces the instance types provided by a given cloud infrastructure; and finally, (4) it contains a user-friendly GUI for configuring and launching simulations, that goes from a single VM to large cloud computing systems composed of thousands of machines.Keywords Cloud computing · Cloud computing simulator · Cloud hypervisor · Validation · Scalability 1 to solve a given computational problem. If the same software and configurations are needed, the VMs may be started using the same image. This way, a machine offered by a computing cloud may become whatever the user needs, from a standalone computer to a cluster or Grid node.Nowadays, cloud computing systems are increasing their role due to the fast (r)evolution of computer networks and communication technologies. A very clear proof of this fact is that very important companies like Amazon, Google, Dell, IBM, and Microsoft are investing billions of dollars in order to provide their own cloud solutions [28].As soon as the scientific community had access to cloud production infrastructures, the first applications started to run on the cloud [26,34]. In many Research areas, the leap from traditional cluster and Grid computing to this new paradigm has been mandatory, being the main reason an evolution in the computational needs of the applications [10]. A remarkable fact from this evolution is that in a pre-cloud environment, hardware defines the level of parallelism of an application. In cloud computing, the level of parallelism is defined by the application itself, as there is no restriction in the number of machines, and CPU availability is 100% guaranteed by standard.There