<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cpp on Miloš Kozák</title><link>https://pubs.miloskozak.cz/tags/cpp/</link><description>Recent content in Cpp on Miloš Kozák</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 29 Sep 2016 00:00:00 +0000</lastBuildDate><atom:link href="https://pubs.miloskozak.cz/tags/cpp/index.xml" rel="self" type="application/rss+xml"/><item><title>CAROBS: the OMNeT++ simulator behind my PhD</title><link>https://pubs.miloskozak.cz/posts/carobs/</link><pubDate>Thu, 29 Sep 2016 00:00:00 +0000</pubDate><guid>https://pubs.miloskozak.cz/posts/carobs/</guid><description>&lt;p&gt;&lt;em&gt;(Published as &lt;a href="https://github.com/lejmr/carobs"&gt;lejmr/carobs&lt;/a&gt; — this post is its README with a bit of context.)&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A rock pile ceases to be a rock pile the moment a single man contemplates it, bearing within him the image of a cathedral.&lt;/em&gt;
— Antoine de Saint-Exupéry, the epigraph I chose for the thesis&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is the source of the all-optical network simulator I built during my PhD, based on the &lt;a href="https://omnetpp.org"&gt;OMNeT++&lt;/a&gt; event-driven simulator. It implements &lt;a href="http://spectrum.library.concordia.ca/979415/1/NR71141.pdf"&gt;CAROBS&lt;/a&gt;, an Optical Burst Switching (OBS) framework that concatenates bursts into &amp;ldquo;cars&amp;rdquo; for better link utilization. CAROBS itself comes from Thomas Coutelen&amp;rsquo;s 2010 Concordia thesis — I built on his architecture during my stay in Brigitte Jaumard&amp;rsquo;s lab in Montreal.&lt;/p&gt;
&lt;p&gt;To use a given network topology as efficiently as possible, the simulator applies the &lt;a href="http://ieeexplore.ieee.org/document/1589625/"&gt;stream-line effect&lt;/a&gt; (SLE). On top of that, it combines SLE &lt;strong&gt;r&lt;/strong&gt;outing and &lt;strong&gt;w&lt;/strong&gt;avelength &lt;strong&gt;a&lt;/strong&gt;ssignment with &lt;strong&gt;g&lt;/strong&gt;rooming provided by the OBS framework — the GRWA algorithm, proposed in &lt;a href="https://dspace.cvut.cz/handle/10467/61383"&gt;my dissertation&lt;/a&gt; (&lt;em&gt;Efficient Control Routing and Wavelength Assignment in Loss-Less Optical Burst Switching Networks&lt;/em&gt;, CTU) — which this simulator was built to verify.&lt;/p&gt;
&lt;p&gt;The thesis insisted on doing this the hard way — to quote the abstract: &amp;ldquo;Heuristics were not used because a rigorous method is necessary in order to formulate a claim on the loss-less OBS viability.&amp;rdquo; Linear programming or nothing. (CPLEX and I spent a lot of quality time together.)&lt;/p&gt;
&lt;p&gt;The details live in the paper it produced, written with Brigitte Jaumard (Concordia) and Leoš Boháč (CTU):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;M. Kozak, B. Jaumard, L. Bohac: &lt;a href="https://doi.org/10.1016/j.osn.2015.03.002"&gt;On the efficiency of stream line effect for contention avoidance in optical burst switching networks&lt;/a&gt;, Optical Switching and Networking, vol. 18, 2015.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;People like to say OBS never left the lab. I&amp;rsquo;d say it was early: every O/E/O conversion costs power and latency, and that bill is coming due — Google already switches light in production (&lt;a href="https://dl.acm.org/doi/10.1145/3544216.3544265"&gt;OCS in Jupiter&lt;/a&gt;), Microsoft&amp;rsquo;s &lt;a href="https://dl.acm.org/doi/10.1145/3387514.3406221"&gt;Sirius&lt;/a&gt; went after nanosecond optical switching, and as latency budgets shrink, the ideas behind OBS and OPS will get reinvented, probably under a new acronym. I&amp;rsquo;ll write about it here when it happens.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s C++ all the way down, and it simulates light. Every project I&amp;rsquo;ve done since has had worse latency.&lt;/p&gt;</description></item></channel></rss>