/
pypy-current-status-and-gil-less-future.json
28 lines (28 loc) · 2.71 KB
/
pypy-current-status-and-gil-less-future.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"alias": "video/1340/pypy-current-status-and-gil-less-future",
"category": "EuroPython 2012",
"copyright_text": "Standard YouTube License",
"description": "In the first part of the keynote we will present the current status of\nPyPy, with a particular focus on what happened in the last year. We will\ngive a brief overview of the current speed and the on-going development\nefforts. The second part of the keynote is about one particular feature\nwhose development is in progress in PyPy: Automatic Mutual Exclusion.\nWhat it is needs some explanation: The GIL, or Global Interpreter Lock,\nis a well-known issue for Python programmers that want to have a single\nprogram using the multiple cores of today\u2019s machines. This keynote is\nnot about writing a GIL-less Python interpreter; although hard, this has\nbeen done before, notably in Jython. The real issue is that writing each\nand every multi-threaded Python programs is hard too. The threading\nmodule offers locks in several variants, conditions, events, semaphores\u2026\nBut using them correctly without missing one case is difficult,\nimpossible to seriously test, often impossible to retrofit into existing\nprograms, and arguably doesn\u2019t scale. (Other solutions like the\nmultiprocessing module are at best workarounds, suffering some of the\nsame issues plus their own ones.) Instead, this keynote is about an\nalternate solution: a minimal thread-less API that lets programs use\nmultiple cores, without worrying about races. This may sound impossible,\nbut is in fact similar to the API simplification of using a garbage\ncollected language over an explicitly managed one \u2014 what is not minimal\nis \u201cjust\u201d the internal implementation of that API. I will explain how it\ncan actually be done using Automatic Mutual Exclusion, a technique based\non Transactional Memory. I will give preliminary results on a modified\nversion of the PyPy Python interpreter that show that it can actually\nwork. I will also explain how the API is used, e.g. in a modified\nTwisted reactor that gives multi-core capability to any existing,\nnon-thread-based Twisted program.\n",
"duration": null,
"id": 1340,
"language": "eng",
"quality_notes": "",
"recorded": "2012-07-04",
"slug": "pypy-current-status-and-gil-less-future",
"speakers": [
"A Cuni",
"Armin Rigo",
"M Fijalkowski"
],
"summary": "[EuroPython 2012] A. Rigo, A. Cuni, M. Fijalkowski - 2 JULY 2012 in\n\"Track Spaghetti\"\n",
"tags": [],
"thumbnail_url": "https://i.ytimg.com/vi/x6OL88pzjHQ/hqdefault.jpg",
"title": "Pypy: current status and gil-less future",
"videos": [
{
"length": 0,
"type": "youtube",
"url": "https://www.youtube.com/watch?v=x6OL88pzjHQ"
}
]
}