This summer we’re hosting an interesting internship program. As part of the Google Summer of Code, and in cooperation with the swiss university EPFL, we’re organizing a three month long internship at Infinum.
If all the following conditions equal
true for you:
- you’re a tech university student
- you’re interested in developing for the Android mobile platform
- you’re interested in the programming language Scala
- you want to find out how it’s like to work at Infinum
- you want to find out what it’s like to work on a Google Summer of Code project
- you want to find out what it’s like to work on an international project with the swiss university EPFL (École Polytechnique Fédérale de Lausanne)
- apart from catching some sun in the summer, you want to work and learn something new
What I am going to work on?
The title of the project is Support for Scala paralell collections on the Android platform. More info about the project follows.
Parallel collections available in the Scala programming language since version 2.9 are an easy way to leverage parallelism for multithreaded applications which are data-parallel. They parallelize bulk operations like collection traversal, transformation or filtering. This framework is generic in the sense that it can be extended with new collection types and it’s modular in the scheduler implementation. Parallel collections can also be used from within Java, at the cost of a less clean syntax. Scala applications and libraries are compiled to the JVM bytecode, so they can easily be ported to the Android platform.
Parallel collections have shown to be a useful extension to the Scala collection framework and can bring significant speedups for the JVM programs. With the arrival of the new multicore devices for the Android platform, an opportunity presents itself to port parallel collections to mobile devices and tablets.
The goal of this project is to implement a task scheduler for the parallel collections on the Android platform, based either on a port of the fork-join pool for Java or the thread pool executors available on the Android platform, followed by a detailed performance evaluation to see how big the benefits are on Android.
The goal for the project?
In short, the goal for this project is:
- detailed evaluation of the performance of parallel collections on Android
- implementing a scheduler for parallel collections on Android, based on the fork-join framework for Java
- estimating the impact of the GC mechanism, closuers, boxing and other factors on the performance of paralell collections on Android
As you can see, the problem isn’t simple, but it’s potentially very interesting and you’ll be sure to learn a lot. Additionally, we’re potentially looking for people that will remain working with us in the future.
You’ll be working 50% of full working hours, from May 15th, until August 15th. Working hours are flexible. You’ll be working in our offices in Zagreb, and in cooperation with the Scala Team at EPFL.
To sign up, please send:
- your CV
- a sample of source code