<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 10pt; color: rgb(51, 51, 153); font-family: Tahoma, Geneva, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"><span style="font-size:10pt;" id="divtagdefaultwrapper"></p>
<div style="margin-top:0;margin-bottom:0;">Dear Mochi users and developers,</div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">We would like to introduce a new addition to the Mochi suite: Thallium, a C++14 library built on top of Margo.</div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">Thallium is available on the SDS gitlab group:
<a href="https://xgitlab.cels.anl.gov/sds/thallium" target="_blank" rel="noopener noreferrer" id="LPlnk668982" previewremoved="true">
<span id="LPlnk668982">https://xgitlab.cels.anl.gov/sds/thallium</span></a></div>
<div style="margin-top:0;margin-bottom:0;">It even has a wiki with a number of tutorials: <a href="https://xgitlab.cels.anl.gov/sds/thallium/wikis/home" target="_blank" rel="noopener noreferrer" id="LPlnk737606" previewremoved="true"><span id="LPlnk737606">https://xgitlab.cels.anl.gov/sds/thallium/wikis/home</span></a>
</div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">The major advantages of Thallium, compared with Margo, are:</div>
<div style="margin-top:0;margin-bottom:0;">- Much smaller code to write in C++ than what we would write in C with Margo.</div>
<div style="margin-top:0;margin-bottom:0;">- No need for resource management (i.e. calling margo_destroy and other resource-releasing functions), as C resources are wrapped into C++ objects.<br>
</div>
<div style="margin-top:0;margin-bottom:0;">- Serialization code for Mercury is made MUCH easier thanks to C++ templates, and all basic types and STL containers are supported by default. No need for macros anymore.</div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">Of course there is a spack package to install it (simply git pull sds-repo to update it).</div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">If you want an example of how simple the code can be, just look here:</div>
<div style="margin-top:0;margin-bottom:0;"><a href="https://xgitlab.cels.anl.gov/sds/thallium/wikis/sum" target="_blank" rel="noopener noreferrer" id="LPlnk583159" previewremoved="true"><span id="LPlnk583159">https://xgitlab.cels.anl.gov/sds/thallium/wikis/sum</span></a></div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">This library has potential for increasing productivity when developing Mochi services. In the near future it will also include wrappers for the Argobots library, to allow tasking/threading with C++14.</div>
<div style="margin-top:0;margin-bottom:0;"></div>
<div style="margin-top:0;margin-bottom:0;"><br>
</div>
<div style="margin-top:0;margin-bottom:0;">Matthieu<span style="font-size:10pt;" id="divtagdefaultwrapper"> Dorier<br>
</span></div>
</span>
<p></p>
</div>
</body>
</html>