Javascript must be enabled to continue!
Collecting very large heaps with teleGC
View through CrossRef
Collecter de très grands tas avec téléGC
La mémoire hiérachique (ou mémoire à plusieurs niveaux), est un paradigme de gestion des données qui a émergé avec l'avènement de nouvelles technologies mémoire (mémoire persistente, disque, High Bandwith Memory (HBM), mémoire programmable,...) et de nouveaux canaux de communication entre les mémoires (Infiniband, CXL, NUMA, ...).Dans cette abstraction, chaque niveaux mémoire offre des latences différentes, et des capacités de stockage plus ou moins élevées. Pour profiter des propriétés différentes des mémoires de manière optimale, l'objectif des chercheurs et développeurs système est de décider où placer les données dans ces divers niveaux. Par exemple, il est plus efficace de placer les données accédées plus fréquemment dans les mémoires plus rapides comme la DRAM (Dynamic Random Access Memory) ou les caches CPU, et les données les moins utilisées dans les niveaux plus lents comme le disque, ou la mémoire distante. Notre étude se place dans un contexte précis de mémoire hiérarchique appelé la mémoire désagrégée. Dans ce contexte, les nœuds au sein d'un cluster peuvent accéder directement à la mémoire des autres nœuds, sans interrompre leurs processeurs. Ce procédé s'appelle RDMA (accès mémoire direct à distance), et permet, si la transparence est assurée par le système d'exploitation, de donner l'abstraction aux applications d'une mémoire très grande, qui est en réalité la somme des mémoires de tous les nœuds dans le cluster. Cependant, RDMA qui, par construction, n'implémente pas de cohérence de cache, rend l'échange de donnée entre les CPUs des différents nœuds impossible. Dans les faits, le cluster est divisé en deux groupes de nœuds, des nœuds de calculs, qui accueillent les applications, et des nœuds mémoires, qui servent de stockage distant, plus performants que le disque. Dans ce contexte, plusieurs projets de recherche ont montré que l'exécution d'une application accompagnée d'un ramasse miette (ou Garbage Collector (GC)), était particulièrement affectée par l'utilisation de mémoire désagrégée. Cela est du au fait que les GC possèdent une très mauvaise localité d'accès, car ils parcourent toute la mémoire pour trouver les objets à libérer. La solution trouvée dans la littérature a été de déplacer l'exécution du ramasse miette vers les nœuds mémoires, dans lesquels la majorité des objets est stockée. Cependant, nous avons mesuré que l'exécution d'un GC sur le nœud mémoire dégrade les performances significativement à cause de la synchronisation entre le collecteur et l'application, car les faire communiquer est maintenant bien plus coûteux. Notre contribution vise à éviter ce coût de synchronisation à l'aide d'un nouveau ramasse miette appelé TeleGC. TeleGC est localisé sur le nœud distant, cependant, contrairement aux prototypes concurrents, nous proposons d'utiliser l'absence de cohérence de cache à notre avantage pour générer une capture de la mémoire sur le nœud distant. En effet, si l'on garantit qu'aucune écriture n'est effectuée sur une région de mémoire, il est possible de la collecter de manière indépendante, sans synchronisation avec l'application pour garantir l'intégrité de la mémoire. Pour obtenir cette capture, nous avons développé la barrière de write-back, qui bloque et redirige les écritures de la mémoire locale vers la mémoire distante pendant une collection. D'autre part, notre ramasse miette n'effectue pas de compaction, c'est à dire n'agrège pas les objets vivants restants, car cela implique une synchronisation d'autant plus importante entre le ramasse miette et l'application, très couteuse dans le contexte de désagrégation. Pour palier à la fragmentation qui se génère alors, nous proposons une disposition de la mémoire particulière, similaire à celle de la machine virtuelle Python. Avec cette approche, notre prototype est capable de surpasser à la fois les GCs en production de la JVM (Java Virtual Machine), et les implémentations de l'état de l'art dans un contexte désagrégé.
Title: Collecting very large heaps with teleGC
Description:
Collecter de très grands tas avec téléGC
La mémoire hiérachique (ou mémoire à plusieurs niveaux), est un paradigme de gestion des données qui a émergé avec l'avènement de nouvelles technologies mémoire (mémoire persistente, disque, High Bandwith Memory (HBM), mémoire programmable,.
) et de nouveaux canaux de communication entre les mémoires (Infiniband, CXL, NUMA, .
).
Dans cette abstraction, chaque niveaux mémoire offre des latences différentes, et des capacités de stockage plus ou moins élevées.
Pour profiter des propriétés différentes des mémoires de manière optimale, l'objectif des chercheurs et développeurs système est de décider où placer les données dans ces divers niveaux.
Par exemple, il est plus efficace de placer les données accédées plus fréquemment dans les mémoires plus rapides comme la DRAM (Dynamic Random Access Memory) ou les caches CPU, et les données les moins utilisées dans les niveaux plus lents comme le disque, ou la mémoire distante.
Notre étude se place dans un contexte précis de mémoire hiérarchique appelé la mémoire désagrégée.
Dans ce contexte, les nœuds au sein d'un cluster peuvent accéder directement à la mémoire des autres nœuds, sans interrompre leurs processeurs.
Ce procédé s'appelle RDMA (accès mémoire direct à distance), et permet, si la transparence est assurée par le système d'exploitation, de donner l'abstraction aux applications d'une mémoire très grande, qui est en réalité la somme des mémoires de tous les nœuds dans le cluster.
Cependant, RDMA qui, par construction, n'implémente pas de cohérence de cache, rend l'échange de donnée entre les CPUs des différents nœuds impossible.
Dans les faits, le cluster est divisé en deux groupes de nœuds, des nœuds de calculs, qui accueillent les applications, et des nœuds mémoires, qui servent de stockage distant, plus performants que le disque.
Dans ce contexte, plusieurs projets de recherche ont montré que l'exécution d'une application accompagnée d'un ramasse miette (ou Garbage Collector (GC)), était particulièrement affectée par l'utilisation de mémoire désagrégée.
Cela est du au fait que les GC possèdent une très mauvaise localité d'accès, car ils parcourent toute la mémoire pour trouver les objets à libérer.
La solution trouvée dans la littérature a été de déplacer l'exécution du ramasse miette vers les nœuds mémoires, dans lesquels la majorité des objets est stockée.
Cependant, nous avons mesuré que l'exécution d'un GC sur le nœud mémoire dégrade les performances significativement à cause de la synchronisation entre le collecteur et l'application, car les faire communiquer est maintenant bien plus coûteux.
Notre contribution vise à éviter ce coût de synchronisation à l'aide d'un nouveau ramasse miette appelé TeleGC.
TeleGC est localisé sur le nœud distant, cependant, contrairement aux prototypes concurrents, nous proposons d'utiliser l'absence de cohérence de cache à notre avantage pour générer une capture de la mémoire sur le nœud distant.
En effet, si l'on garantit qu'aucune écriture n'est effectuée sur une région de mémoire, il est possible de la collecter de manière indépendante, sans synchronisation avec l'application pour garantir l'intégrité de la mémoire.
Pour obtenir cette capture, nous avons développé la barrière de write-back, qui bloque et redirige les écritures de la mémoire locale vers la mémoire distante pendant une collection.
D'autre part, notre ramasse miette n'effectue pas de compaction, c'est à dire n'agrège pas les objets vivants restants, car cela implique une synchronisation d'autant plus importante entre le ramasse miette et l'application, très couteuse dans le contexte de désagrégation.
Pour palier à la fragmentation qui se génère alors, nous proposons une disposition de la mémoire particulière, similaire à celle de la machine virtuelle Python.
Avec cette approche, notre prototype est capable de surpasser à la fois les GCs en production de la JVM (Java Virtual Machine), et les implémentations de l'état de l'art dans un contexte désagrégé.
Related Results
Quantitative method on study of Mani heaps: the case study on color analysis of Mani heaps in Dingqing county, Tibet
Quantitative method on study of Mani heaps: the case study on color analysis of Mani heaps in Dingqing county, Tibet
Abstract
A Mani heap, as an important religious art, is piled up by hundreds of stones or slates carved with a lot of information about religion, culture, history, art and ...
Border rossing, collecting, gravitating: small narratives of three ordinary collectors in the Chinese diaspora in South Africa since the late 1980s
Border rossing, collecting, gravitating: small narratives of three ordinary collectors in the Chinese diaspora in South Africa since the late 1980s
Shifting away from the conventional viewpoint that confines art collecting predominantly to established structures like art institutions, markets, and exclusive collector networks,...
Thin heaps, thick heaps
Thin heaps, thick heaps
The Fibonacci heap was devised to provide an especially efficient implementation of Dijkstra's shortest path algorithm. Although asyptotically efficient, it is not as fast in pract...
Books as social currency: Robert Coupland Harding and the field of book collecting in New Zealand 1880-1920
Books as social currency: Robert Coupland Harding and the field of book collecting in New Zealand 1880-1920
<p>“Here, indeed, lies the whole miracle of collecting,” Jean Baudrillard asserted, “it is invariably oneself that one collects” (“Systems of Collecting” 12). If Baudrillard'...
Der skal ikke lades sten på sten tilbage
Der skal ikke lades sten på sten tilbage
The Building by the Barbar TempleClose by the large temple at Barbar 1) lies a little tell, which was investigated in the spring of 1956. The tell was shown to cover a building of ...
Heaps’ Law and Heaps functions in tagged texts: evidences of their linguistic relevance
Heaps’ Law and Heaps functions in tagged texts: evidences of their linguistic relevance
We study the relationship between vocabulary size and text length in a corpus of 75 literary works in English, authored by six writers, distinguishing between the contributions of ...
Pricing decisions for reverse supply chains
Pricing decisions for reverse supply chains
PurposeThe purpose of this paper is to present the collecting price decisions of used products in reverse supply chains based on the following cases: manufacturer for collecting an...
The importance of continued collecting of bird specimens to ornithology and bird conservation
The importance of continued collecting of bird specimens to ornithology and bird conservation
SummaryBecause museum scientists and conservationists are natural allies in the struggle to preserve biodiversity, conflict over the legality, morality, and value of collecting sci...

