%  Created by MIDAS Team on 2011-03-29.
%  Copyright (c) 2011. All rights reserved.

\documentclass[a4paper]{article}
% \usepackage[T1]{fontenc}
\usepackage{RR} 
\usepackage{graphicx} 
\usepackage[utf8]{inputenc} % Use utf-8 encoding for foreign characters
\usepackage[a4paper, left=2.3cm,top=2.3cm,right=2.3cm,bottom=2.3cm]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}


% \usepackage[colorlinks]{hyperref}
% \hypersetup{
	% linkcolor =  black,     % color of internal links
	% citecolor =  black,     % color of links to bibliography
	% filecolor =  red,       % color of file links
	% urlcolor  =  black      % color of external links} 
% } 

\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{subfigure}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsxtra}
\usepackage{listings}
\usepackage{setspace}
\usepackage{geometry}
\usepackage{algorithm}
\usepackage{algorithmic}

% Multipart figures
% \usepackage{latexsym}
% \usepackage{listings}
% \usepackage{minitoc}

\usepackage{bm}
\usepackage{algorithmic}
% \usepackage[ruled]{algorithm}





% \usepackage{ifpdf} % This is now the recommended way for checking for PDFLaTeX:
% \ifpdf
% 	\DeclareGraphicsExtensions{.pdf, .jpg, .tif}
% \else
% 	\DeclareGraphicsExtensions{.eps, .jpg}
% \fi
% 
% \ifpdf
% 	\usepackage[pdftex]{graphicx}
% \else
% 	\usepackage{graphicx}
% \fi  

% Some definitions

\def\aalm{{$\bm{a}_{\ell m}$}}
\def\blm{{$\bm{\beta}_{\ell m}$}}
\def\miu{{$\bm{\mu}_{m}$}}

\def\s2hat{{\sc s$^2$hat}}
\def\alm2map{{\tt alm2map}}

\def\M{{$\cal M$}}
\def\L{{$\cal L$}}

\def\deltam{{$\bm{\Delta}_{m}\ $}}

\def\apjl{ApJ}%
\def\apj{ApJ}%

\def\l#1{\left#1}
\def\r#1{\right#1}
\def\simlt{\lower.5ex\hbox{$\; \buildrel < \over \sim \;$}}
\def\simgt{\lower.5ex\hbox{$\; \buildrel > \over \sim \;$}}

\usepackage{bm}

\RRtitle{Spherical harmonic transform on heterogeneous architectures using hybrid programming}
\RRetitle{Spherical harmonic transform on heterogeneous architectures using hybrid programming}

\titlehead{Spherical harmonic transform on heterogeneous architectures using hybrid programming}

\RRauthor{{Mikolaj SZYDLARSKI} \thanks{INRIA Saclay-\^Ile de France, F-91893 Orsay, France ({\tt mikolaj.szydlarski@inria.fr}). } 
\and{Pierre ESTERIE}
\thanks{Laboratoire de Recherche en Informatique, Bat 490, Universit\'e Paris-Sud 11, France ({\tt pierre.esterie@lri.fr}). }
\and{Joel FALCOU}
\thanks{Laboratoire de Recherche en Informatique, Bat 490, Universit\'e Paris-Sud 11, France ({\tt joel.falcou@lri.fr}). } 
\and{Laura GRIGORI}
\thanks{INRIA Saclay-Ile de France, Bat 490, Universit\'e Paris-Sud 11, France ({\tt laura.grigori@inria.fr}). }
\and{Radek STOMPOR}
\thanks{CNRS, Laboratoire Astroparticule et Cosmologie, Universit\'e Paris Diderot, France ({\tt radek@apc.univ-paris7.fr}).   } 
}
          
\authorhead{M. Szydlarski et al.}
\RRdate{15 April 2011}
\RRabstract{
	Spherical Harmonic Transforms (SHT) are at the heart of many scientific and practical applications ranging from  climate modeling to cosmological observations. In many of these areas a new wave of 
	exciting, cutting-edge science goals have been recently proposed calling for simulations and analyses of actual experimental or observational data at very high resolutions, accompanied by producing 
	or processing unprecedented volumes of the data.
	Both these aspects pose formid\-able challenge for the currently existing implementations of the transforms.  

	This paper describes a multi CPU-GPUs implementation of an inverse SHT, based on hybrid programming combining MPI and CUDA, and discusses its tests as motivated by these forthcoming applications. 
	
	We present performance comparisons of the multi GPU version and a hybrid, MPI/OpenMP version of the same transform. We find that one NVIDIA Tesla S1070 can accelerate overall execution time of the SHT by 
	as much as 3 times with respect to the MPI/OpenMP version executed on one quad-core processor (Intel Nehalem 2.93 GHz) and, owing to very good scalability of both versions, 128 Tesla cards perform 
	as good as 256 twelve-core processor (AMD Op\-te\-ron 2.1 GHz).
}

% \RRresume{mmmm}

\RRkeyword{Spherical Harmonic Transforms, hybrid architectures, hybrid programming, OpenMP, CUDA, Multi-GPU}
\RRprojet{Grand-large}

\RRresume{
Les transformations en harmoniques sphériques (SHT) sont au cœur de nombreuses applications scientifiques et pratiques allant de la modélisation du climat aux observations cosmologiques.  Ces domaines nécessitent des simulations et des analyses de données expérimentales engendrant des larges volumes de données.  Ceci repr\'esente un défi important pour les implémentations actuelles des transformations en harmoniques sphériques.

Ce papier décrit la mise en œuvre multi CPU-GPU d'une SHT inverse, basée sur une programmation hybride, combinant MPI et CUDA.
Nous comparons les performances de la version multi GPU par rapport à une version hybride MPI / OpenMP de la même transformation. Nous constatons qu'une NVIDIA Tesla S1070 peut exécuter la SHT 
3 fois plus rapidement que la version MPI / OpenMP exécutée sur un processeur quad-core (Intel Nehalem cadencé à 2,93 GHz) . De plus, en raison d'un très bon passage à l'échelle des deux versions, 128 cartes Tesla donnent d'aussi bonnes
performances que 256 processeurs à 12 coeurs (AMD Op \-te \-ron 2,1 GHz).
}

\RRmotcle{transformations en harmoniques sphériques, Multi-GPU, CUDA, OpenMP,  architectures hybrides, programmation hybride}
\RRtheme{\THNum}
\URFuturs
\RCSaclay
\RRNo{7635}

\begin{document}
\makeRR	

% \newenvironment{indenteddescription}%
% 	{\begin{list}{}{\setlength{\labelwidth}{0pt}
% 	\setlength{\itemindent}{-\leftmargin}
% 	\setlength{\listparindent}{\parindent}
% 	\renewcommand{\makelabel}{\descriptionlabel}}}%
% {\end{list}}  

% --- Section (seperate files)

\input{sections/introduction.tex}
\input{sections/background.tex}
%\section{Experimental results}\label{sec:experimental_results} % (fold)
\input{sections/experimental.tex}
	
% section experimental_results (end)
\input{sections/conclusions.tex}
\input{sections/acknowledgment.tex}

% --- (end) Sections



% --- Bibliography

\bibliographystyle{latex8}
\bibliography{RR-biblio}

% --- (end) Bibliography


\end{document}
