Loading…
BCL: A Cross-Platform Distributed Container Library
One-sided communication is a useful paradigm for irregular parallel applications, but most one-sided programming environments, including MPI's one-sided interface and PGAS programming languages, lack application level libraries to support these applications. We present the Berkeley Container Li...
Saved in:
Published in: | arXiv.org 2023-12 |
---|---|
Main Authors: | , , |
Format: | Article |
Language: | English |
Subjects: | |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | |
---|---|
cites | |
container_end_page | |
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | Brock, Benjamin Buluç, Aydın Yelick, Katherine |
description | One-sided communication is a useful paradigm for irregular parallel applications, but most one-sided programming environments, including MPI's one-sided interface and PGAS programming languages, lack application level libraries to support these applications. We present the Berkeley Container Library, a set of generic, cross-platform, high-performance data structures for irregular applications, including queues, hash tables, Bloom filters and more. BCL is written in C++ using an internal DSL called the BCL Core that provides one-sided communication primitives such as remote get and remote put operations. The BCL Core has backends for MPI, OpenSHMEM, GASNet-EX, and UPC++, allowing BCL data structures to be used natively in programs written using any of these programming environments. Along with our internal DSL, we present the BCL ObjectContainer abstraction, which allows BCL data structures to transparently serialize complex data types while maintaining efficiency for primitive types. We also introduce the set of BCL data structures and evaluate their performance across a number of high-performance computing systems, demonstrating that BCL programs are competitive with hand-optimized code, even while hiding many of the underlying details of message aggregation, serialization, and synchronization. |
doi_str_mv | 10.48550/arxiv.1810.13029 |
format | article |
fullrecord | <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2127832382</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2127832382</sourcerecordid><originalsourceid>FETCH-LOGICAL-a522-d428f4e5b2780bd151df499dbfce3dcc4192fd33cf908b767b82f51eb65d7dbc3</originalsourceid><addsrcrecordid>eNotjctKxDAUQIMgOIzzAe4CrjMm9yZt4m6sTyjoYvZDnpBhbDVpRf_egq4OnMU5hFwJvpVaKX5jy3f-2gq9CIEczBlZAaJgWgJckE2tR845NC0ohSuCd11_S3e0K2Ot7O1kpzSWd3qf61Sym6cYaDcOk81DLLTPrtjyc0nOkz3VuPnnmuwfH_bdM-tfn166Xc-sAmBBgk4yKget5i4IJUKSxgSXfMTgvRQGUkD0yXDt2qZ1GpIS0TUqtMF5XJPrv-xHGT_nWKfDcZzLsBwPIJYoAmrAX5mWReM</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2127832382</pqid></control><display><type>article</type><title>BCL: A Cross-Platform Distributed Container Library</title><source>ProQuest - Publicly Available Content Database</source><creator>Brock, Benjamin ; Buluç, Aydın ; Yelick, Katherine</creator><creatorcontrib>Brock, Benjamin ; Buluç, Aydın ; Yelick, Katherine</creatorcontrib><description>One-sided communication is a useful paradigm for irregular parallel applications, but most one-sided programming environments, including MPI's one-sided interface and PGAS programming languages, lack application level libraries to support these applications. We present the Berkeley Container Library, a set of generic, cross-platform, high-performance data structures for irregular applications, including queues, hash tables, Bloom filters and more. BCL is written in C++ using an internal DSL called the BCL Core that provides one-sided communication primitives such as remote get and remote put operations. The BCL Core has backends for MPI, OpenSHMEM, GASNet-EX, and UPC++, allowing BCL data structures to be used natively in programs written using any of these programming environments. Along with our internal DSL, we present the BCL ObjectContainer abstraction, which allows BCL data structures to transparently serialize complex data types while maintaining efficiency for primitive types. We also introduce the set of BCL data structures and evaluate their performance across a number of high-performance computing systems, demonstrating that BCL programs are competitive with hand-optimized code, even while hiding many of the underlying details of message aggregation, serialization, and synchronization.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.1810.13029</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Containers ; Data structures ; Programming environments ; Programming languages ; Queues ; Synchronism</subject><ispartof>arXiv.org, 2023-12</ispartof><rights>2023. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.proquest.com/docview/2127832382?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>780,784,25753,27925,37012,44590</link.rule.ids></links><search><creatorcontrib>Brock, Benjamin</creatorcontrib><creatorcontrib>Buluç, Aydın</creatorcontrib><creatorcontrib>Yelick, Katherine</creatorcontrib><title>BCL: A Cross-Platform Distributed Container Library</title><title>arXiv.org</title><description>One-sided communication is a useful paradigm for irregular parallel applications, but most one-sided programming environments, including MPI's one-sided interface and PGAS programming languages, lack application level libraries to support these applications. We present the Berkeley Container Library, a set of generic, cross-platform, high-performance data structures for irregular applications, including queues, hash tables, Bloom filters and more. BCL is written in C++ using an internal DSL called the BCL Core that provides one-sided communication primitives such as remote get and remote put operations. The BCL Core has backends for MPI, OpenSHMEM, GASNet-EX, and UPC++, allowing BCL data structures to be used natively in programs written using any of these programming environments. Along with our internal DSL, we present the BCL ObjectContainer abstraction, which allows BCL data structures to transparently serialize complex data types while maintaining efficiency for primitive types. We also introduce the set of BCL data structures and evaluate their performance across a number of high-performance computing systems, demonstrating that BCL programs are competitive with hand-optimized code, even while hiding many of the underlying details of message aggregation, serialization, and synchronization.</description><subject>Containers</subject><subject>Data structures</subject><subject>Programming environments</subject><subject>Programming languages</subject><subject>Queues</subject><subject>Synchronism</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><recordid>eNotjctKxDAUQIMgOIzzAe4CrjMm9yZt4m6sTyjoYvZDnpBhbDVpRf_egq4OnMU5hFwJvpVaKX5jy3f-2gq9CIEczBlZAaJgWgJckE2tR845NC0ohSuCd11_S3e0K2Ot7O1kpzSWd3qf61Sym6cYaDcOk81DLLTPrtjyc0nOkz3VuPnnmuwfH_bdM-tfn166Xc-sAmBBgk4yKget5i4IJUKSxgSXfMTgvRQGUkD0yXDt2qZ1GpIS0TUqtMF5XJPrv-xHGT_nWKfDcZzLsBwPIJYoAmrAX5mWReM</recordid><startdate>20231215</startdate><enddate>20231215</enddate><creator>Brock, Benjamin</creator><creator>Buluç, Aydın</creator><creator>Yelick, Katherine</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20231215</creationdate><title>BCL: A Cross-Platform Distributed Container Library</title><author>Brock, Benjamin ; Buluç, Aydın ; Yelick, Katherine</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a522-d428f4e5b2780bd151df499dbfce3dcc4192fd33cf908b767b82f51eb65d7dbc3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Containers</topic><topic>Data structures</topic><topic>Programming environments</topic><topic>Programming languages</topic><topic>Queues</topic><topic>Synchronism</topic><toplevel>online_resources</toplevel><creatorcontrib>Brock, Benjamin</creatorcontrib><creatorcontrib>Buluç, Aydın</creatorcontrib><creatorcontrib>Yelick, Katherine</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>ProQuest - Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering collection</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Brock, Benjamin</au><au>Buluç, Aydın</au><au>Yelick, Katherine</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>BCL: A Cross-Platform Distributed Container Library</atitle><jtitle>arXiv.org</jtitle><date>2023-12-15</date><risdate>2023</risdate><eissn>2331-8422</eissn><abstract>One-sided communication is a useful paradigm for irregular parallel applications, but most one-sided programming environments, including MPI's one-sided interface and PGAS programming languages, lack application level libraries to support these applications. We present the Berkeley Container Library, a set of generic, cross-platform, high-performance data structures for irregular applications, including queues, hash tables, Bloom filters and more. BCL is written in C++ using an internal DSL called the BCL Core that provides one-sided communication primitives such as remote get and remote put operations. The BCL Core has backends for MPI, OpenSHMEM, GASNet-EX, and UPC++, allowing BCL data structures to be used natively in programs written using any of these programming environments. Along with our internal DSL, we present the BCL ObjectContainer abstraction, which allows BCL data structures to transparently serialize complex data types while maintaining efficiency for primitive types. We also introduce the set of BCL data structures and evaluate their performance across a number of high-performance computing systems, demonstrating that BCL programs are competitive with hand-optimized code, even while hiding many of the underlying details of message aggregation, serialization, and synchronization.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.1810.13029</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2023-12 |
issn | 2331-8422 |
language | eng |
recordid | cdi_proquest_journals_2127832382 |
source | ProQuest - Publicly Available Content Database |
subjects | Containers Data structures Programming environments Programming languages Queues Synchronism |
title | BCL: A Cross-Platform Distributed Container Library |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-01T07%3A06%3A22IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=BCL:%20A%20Cross-Platform%20Distributed%20Container%20Library&rft.jtitle=arXiv.org&rft.au=Brock,%20Benjamin&rft.date=2023-12-15&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.1810.13029&rft_dat=%3Cproquest%3E2127832382%3C/proquest%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a522-d428f4e5b2780bd151df499dbfce3dcc4192fd33cf908b767b82f51eb65d7dbc3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2127832382&rft_id=info:pmid/&rfr_iscdi=true |