Talks by Dr. Marr and Prof. Gonzalez Boix

Dr. Stefan Marr at Kent University and Prof. Elisa Gonzalez Boix at VUB give talks at our seminar.

Safe and Efficient Data Representations for Dynamic Languages with
Shared-Memory Parallelism (Dr. Stefan Marr)

The performance of dynamic languages improved ever since the days of Self. Even so they provide a plethora of features seemingly at odds with an efficient implementation, modern VMs execute programs written in JavaScript, Python, Ruby, or Smalltalk as fast as other less dynamic languages. However, there remains one domain where dynamic languages haven’t reached their more conservative counterparts: shared-memory parallelism.

So far, the fewest dynamic language implementations shed their global interpreter locks, which allow for simple and efficient data structures for objects or collections because data races don’t have to be considered. The few implementations that did, unfortunately expose applications to data races originating in the VM.

This talk presents work on safe data representations for objects and builtin collections that neither prevent parallel execution nor expose data races originating in VM-level implementation choices. We show that it is possible to avoid any overhead on single threaded code as well as making the data structures scalable for parallel use cases.

 

Tooling for live big data applications (Prof. Elisa Gonzalez Boix)

Testing and debugging Big Data application is often a tedious process, involving changes of setup, restarts and analysis of log files. In this demo I am gonna present Port, a Live Big Data framework in Pharo. Port can be used to write classical Map/Reduce applications, that will be parallelized by the framework and executed in different running environments (i.e. Pharo images). Port can be deployed simply on your local machine (with an automatised system to spawn different running environments), or on a distributed cluster leveraging on Hadoop YARN.

I will show how developers can write, execute and manage their applications, and the tooling support for testing such applications in different setups. I will also show how the concepts of out-of-place debugging are used to handle failures in the running application.