Talk: Using multiple cores in a high-level language

Saturday 10th of November, 2012
Room 4

by Armin Rigo

We talked about PyPy in past FSCONS as both a performant version of Python and a general tool for building dynamic language implementations. PyPy's Python suffered from the same issue as the standard CPython: a single process cannot use multiple cores. Now we have the preliminaries of the solution – without requiring the user to write threads.

The programming situation today can be compared to Garbage Collection 20-30 years ago: the user (of the programming language) has to use threads like he used to have to do explicit memory management. Both are notoriously difficult to get right and debug in large programs, and just an unnecessary pain in small programs.

Nowadays most languages are garbage-collected, but what about multiple cores? The recently developed Transactional Memory scheme offers a higher-level view: instead of writing threads and handling synchronization issues, the programmer divides the execution of the program in pieces that are “likely to be mostly independent”.

Concurrent events:

Next (up to 3) talks in the same room (Room 4):

Events that start after this one (within 30 minutes):