\documentclass[10pt]{article}

\usepackage{fullpage}
\usepackage{setspace}
\usepackage{parskip}
\usepackage{titlesec}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{breakcites}
\usepackage{lineno}
\usepackage{hyphenat}





\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks = true,
            linkcolor = blue,
            urlcolor  = blue,
            citecolor = blue,
            anchorcolor = blue]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
  \errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother


\usepackage{natbib}




\renewenvironment{abstract}
  {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize}
  {\bigskip}

\titlespacing{\section}{0pt}{*3}{*1}
\titlespacing{\subsection}{0pt}{*2}{*0.5}
\titlespacing{\subsubsection}{0pt}{*1.5}{0pt}


\usepackage{authblk}


\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%

\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}



\usepackage{float}








\begin{document}

\title{Big Arrays, Fast: Profiling Cloud Storage Read Throughput}



\author[1,1]{Ryan Abernathey}%
\affil[1]{Columbia}%


\vspace{-1em}



  
  \date{June 14, 2024}


\begingroup
\let\center\flushleft
\let\endcenter\endflushleft
\maketitle
\endgroup





\selectlanguage{english}
\begin{abstract}
As the size of geoscience datasets grows, scientists are eager to move
away from a download-based workflow, where data files are downloaded a
local computer for analysis, towards a more cloud-native workflow, where
data is loaded on demand over the network. On-demand data loading offers
several advantages, including increased reproducibility, provenance
tracking, and, potentially, scalability using distributed cloud
computing. In this notebook, we demonstrate how to load data on-demand
using three different remote data access protocols: - OPeNDAP, the most
common, well-established protocol - NetCDF over HTTP, enabled by the
h5py library - Zarr over HTTP, a new format optimized for cloud object
storage (e.g. Amazon S3) We then conduct a simple benchmarking exercise
to explore the throughput and scalability of each service. We use Dask
to parallelize reads from each access protocol and calculate the
throughput as a function of number of parallel reads. One conclusion is
that Zarr over HTTP, coupled with cloud object storage, shows favorable
scaling up to hundreds of parallel processes. Finally, we compare the
throughput of Zarr over HTTP on a few different clouds, including Google
Cloud Storage, Jetstream Cloud, Wasabi Cloud, and Open Storage Network.%
\end{abstract}%



\sloppy




\selectlanguage{english}
\FloatBarrier
\end{document}

