Scalable, high concurrency spime management
We have become accustomed to the increase in power of the available hardware platforms. The past 40 years of Moore’s law’s self-fulfilling prophecy, through the efforts of competing teams working towards the common goal of producing new generations of processors, have been an unparalleled success in the history of technological achievements. Looking at the apparently smoothly upward-swinging interpolated curve of the power of successive processors easily hides the struggle, the difficulties, and the sheer effort required in adapting to new technologies in materials science, fabrication methods, architectures, and programming paradigms. There were periods of relative calm, between more radical changes, while one particular technology rules and is exploited to its maximum potential. One of these periods was represented by the exponential increase in the clock speeds, and transistor counts of the processors, which at the end of the ’90s were a sure indicator of things to come. The maxim to programmers to “waste transistors” in that era of abundance, represented a then correct attitude of tasks that were deemed achievable through brute force, if not today, then certainly upon the timely arrival of the next generation of platforms, compatible with the applications, and the architectures of the past.
Then, for unavoidable reasons of thermodynamics—as the energy density of processors became such that their surface temperature was projected to become higher than that of a furnace, then of the Sun maybe—, something had to give, and the relentless increase of the clock speed was it. The new generations of processors introduced in the first decade of the third millennium barely change clock speeds, and the fulfill Moore’s promise through the parallelism of multiple processor cores. We have spoken recently with Roberto Ostinelli, CTO of WideTag, and asked him what this change meant to him, and the goals of OpenSpime.
“Nowadays”, commented Roberto “we have already experienced a consistent shift in hardware trends, moving from single CPU to multiple core machines. This in necessary as single CPU speeds have inevitably leveled out. Yesterday’s exponential growth of single CPUs has often made programmers loosely think about hardware implications, counting on the abundance of processor resources and RAM availability. Today, especially in intensive applications such as the ones in the IoT field, we are experiencing a whole new programming paradigm that multiple core machines and system architectures require. You can’t pretend to exploit the massively distributed systems that represent the leading edge applications of today programming without a change of mentality foremost, but also the adoption of new algorithms, and new programming languages. The shift from single to multiple core and the need for fault tolerant, distributed and scalable systems will have to be undertaken by concrete efforts in software optimization and programming techniques in order to fully unleash the power of new hardware solutions and to satisfy the forecoming requirements of IoT.”
WideTag’s goal is to provide tools, and platforms for an effective implementation of vast sensor networks that constitute the forthcoming Internet Of Things. These platforms have to provide their users, the new generations of programmers, who are ready to take advantage of these networks, with an effective set of tools. “There is no perfect universal programming language: you normally wouldn’t want to program desktop applications in the same language you program SOA applications, for instance. Each of them lives in its own ecosystem of applications. This seems obvious, but programming-language wars are more common than one may think, and it is not rare to see languages being adopted with ‘religious’ faith motivations, or programmers’ availability, more than real evaluation of requirements.
We have decided to use Erlang, one among a series of interesting languages which also include Haskell, to implement the platform with high concurrency for spime communications which we call WideSpime.” added Roberto. “WideSpime takes advantage of the concurrency, scalability and fault tolerance that Erlang provides for distributing processes over variable-granularity architectures. We see it as an ideal environment for the development, and deployment of very scalable, and extremely robust applications.”
WideSpime, available in the spring of 2009, is going to be supplied through a flexible SaaS (Software as a Service) model by WideTag, Inc. to its Enterprise customers, who want to take advantage of its features of high concurrency, large scalability, and robustness.



