Scala gets grant to tackle parallel challenge

Developers of the open source Scala programming language have been given a grant to work the language into a programming model designed to support parallel processing.The European Research Grant, worth €2.

Developers of the open source Scala programming language have been given a grant to work the language into a programming model designed to support parallel processing.

The European Research Grant, worth €2.3m (£1.92m), was awarded to the Scala research group at the swiss Ecole Polytechnique Federale De Lausanne (EPFL), it was announced on 10 January. The EPFL group is headed up by Scala's designer Martin Odersky

The grant "means that the Scala team will nearly double in size to pursue a truly promising way for industry to harness the parallel processing power of the ever increasing number of cores available on each chip," according to the official Scala blog.

To build large, multi-datacentre spanning applications it is necessary to parallelise tasks and to increase the efficiency with which compute resources are utilised.

Scala will provide mechanisms for a programming model that allows applications to benefit from parallel processing. The model will allow high-level optimisation of multiple, distinct languages, programmed in parallel.

"Language Virtualisation"

"The principle innovation is to use "language virtualisation", combining polymorphic embeddings with domain-specific optimisations in a staged compilation processing," according to the blog.

Polymorphic embedding works by abstracting DSL programs into objects of the host language, in this case Scala, which represent the intended meanings of the original DSL programs.

"In the traditional pure embedding approach, two languages are composable if they share a common representation for the types that are relevant in the composition," according to the academic paper which coined the term (PDF). "Polymorphic embedding generalizes this property, in that it is sufficient to give an interpretation for both languages that results in a common representation of those types."

Polymorphic embedding of DSLs will permit language virtualisation, which will make it possible for a single programming model to pull in multiple DSLs. This will allow a program to be compiled through Scala, with other DSLs brought in as libraries under a Scala umbrella.

"DSLs can be designed for application areas such as machine learning, fluid dynamics, analytics, financial modelling and visualisation," according to the blog.

"The work proposed here describes an ambitious but coherent attempt to address the issues and consequently, if successful, would be of enormous value, both intellectually and industrially," the ERC reviewers said. "There is not any other ongoing project which attempts to integrate developments in the necessary range of sub-disciplines."