#LyX 1.6.5 created this file. For more info see http://www.lyx.org/ \lyxformat 345 \begin_document \begin_header \textclass beamer \begin_preamble \usetheme{Warsaw} % or ... \setbeamercovered{transparent} % or whatever (possibly just delete it) \end_preamble \use_default_options false \language english \inputencoding auto \font_roman times \font_sans default \font_typewriter default \font_default_family default \font_sc false \font_osf false \font_sf_scale 100 \font_tt_scale 100 \graphics default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry false \use_amsmath 2 \use_esint 0 \cite_engine basic \use_bibtopic false \paperorientation portrait \secnumdepth 2 \tocdepth 2 \paragraph_separation indent \defskip medskip \quotes_language english \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \author "" \author "" \end_header \begin_body \begin_layout Title OS bypass performance without OS bypass \begin_inset OptArg status open \begin_layout Plain Layout Short Paper Title \begin_inset Note Note status collapsed \begin_layout Plain Layout optional, use only with long paper titles \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Date Usenix 2010 \end_layout \begin_layout BeginFrame Outline \end_layout \begin_layout Standard \begin_inset CommandInset toc LatexCommand tableofcontents \end_inset \end_layout \begin_layout Section Currying and process-private system calls \end_layout \begin_layout BeginFrame Standard path \end_layout \begin_layout Standard \begin_inset Graphics filename ospath.eps width 80text% \end_inset \end_layout \begin_layout Itemize OS overhead known to be primary limit even with very efficient devies \end_layout \begin_layout BeginFrame OS Bypass \end_layout \begin_layout Standard \begin_inset Graphics filename osbypass.eps width 80text% \end_inset \end_layout \begin_layout Itemize Move Os functionality into the library \end_layout \begin_layout Itemize As long as you can relink \emph on every \emph default program that uses the network, it's fine \end_layout \begin_layout Itemize And single-user \end_layout \begin_layout BeginFrame Pushing IO back into the kernel via currying and process-private system calls \end_layout \begin_layout Standard \begin_inset Graphics filename curry.eps width 80text% \end_inset \end_layout \begin_layout BeginFrame How it is used \end_layout \begin_layout Itemize fd = open( \begin_inset Quotes eld \end_inset /dev/torusctl \begin_inset Quotes erd \end_inset ) \end_layout \begin_layout Itemize newsyscall = write(fd, \begin_inset Quotes eld \end_inset fastpath pointer size \begin_inset Quotes erd \end_inset ); \end_layout \begin_layout Itemize paramters and operation \begin_inset Quotes eld \end_inset curried \begin_inset Quotes erd \end_inset into new system all \end_layout \begin_layout Itemize newsyscall attached to this process and its children only \end_layout \begin_layout Itemize newsyscall(); -- no parameters, fast path \end_layout \begin_layout Itemize no parameters and bypasses all system call checking \end_layout \begin_layout Itemize 700 ns measured time on barrier \end_layout \begin_layout Itemize Now any program, not just mpi programs, can use the network \end_layout \begin_layout Itemize Being integrated into new mpi library now \end_layout \begin_layout EndFrame \end_layout \end_body \end_document