% StarPU --- Runtime system for heterogeneous multicore architectures.
%
% Copyright (C) 2013-2016,2018                           Inria
% Copyright (C) 2013-2019                                CNRS
% Copyright (C) 2014,2018                                Université de Bordeaux
% Copyright (C) 2013                                     Simon Archipoff
%
% StarPU is free software; you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
% the Free Software Foundation; either version 2.1 of the License, or (at
% your option) any later version.
%
% StarPU is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
%
% See the GNU Lesser General Public License in COPYING.LGPL for more details.
%
\input{./version.sty}
\setlength{\parskip}{0pt}
\begin{titlepage}
\vspace*{4cm}
{\Huge \textbf{StarPU Handbook}}\\
\rule{\textwidth}{1.5mm}
\begin{flushright}
{\Large for StarPU \STARPUVERSION}
\end{flushright}
\rule{\textwidth}{1mm}
~\\
\vspace*{15cm}
\begin{flushright}
Generated by Doxygen.
\end{flushright}
\end{titlepage}

\begin{figure}[p]
This manual documents the usage of StarPU version \STARPUVERSION. Its contents
was last updated on \STARPUUPDATED.\\

Copyright © 2009–2018 Université de Bordeaux\\

Copyright © 2010-2018 CNRS

Copyright © 2011-2018 Inria

\medskip

\begin{quote}
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled “GNU Free
Documentation License”.
\end{quote}
\end{figure}

\pagenumbering{roman}
\setcounter{tocdepth}{2}
\tableofcontents
\pagenumbering{arabic}
\hypersetup{pageanchor=true,citecolor=blue}

\chapter{Introduction}
\label{index}
\hypertarget{index}{}
\input{index}

\part{StarPU Basics}

\chapter{Building and Installing StarPU}
\label{BuildingAndInstallingStarPU}
\hypertarget{BuildingAndInstallingStarPU}{}
\input{BuildingAndInstallingStarPU}

\chapter{Basic Examples}
\label{BasicExamples}
\hypertarget{BasicExamples}{}
\input{BasicExamples}

\part{StarPU Quick Programming Guide}

\chapter{Advanced Examples}
\label{AdvancedExamples}
\hypertarget{AdvancedExamples}{}
\input{AdvancedExamples}

\chapter{Check List When Performance Are Not There}
\label{CheckListWhenPerformanceAreNotThere}
\hypertarget{CheckListWhenPerformanceAreNotThere}{}
\input{CheckListWhenPerformanceAreNotThere}

\part{StarPU Inside}

\chapter{Tasks In StarPU}
\label{TasksInStarPU}
\hypertarget{TasksInStarPU}{}
\input{TasksInStarPU}

\chapter{Data Management}
\label{DataManagement}
\hypertarget{DataManagement}{}
\input{DataManagement}

\chapter{Scheduling}
\label{Scheduling}
\hypertarget{Scheduling}{}
\input{Scheduling}

\chapter{Scheduling Contexts}
\label{SchedulingContexts}
\hypertarget{SchedulingContexts}{}
\input{SchedulingContexts}

\chapter{Scheduling Context Hypervisor}
\label{SchedulingContextHypervisor}
\hypertarget{SchedulingContextHypervisor}{}
\input{SchedulingContextHypervisor}

\chapter{How To Define a New Scheduling Policy}
\label{HowToDefineANewSchedulingPolicy}
\hypertarget{HowToDefineANewSchedulingPolicy}{}
\input{HowToDefineANewSchedulingPolicy}

\chapter{Debugging Tools}
\label{DebuggingTools}
\hypertarget{DebuggingTools}{}
\input{DebuggingTools}

\chapter{Online Performance Tools}
\label{OnlinePerformanceTools}
\hypertarget{OnlinePerformanceTools}{}
\input{OnlinePerformanceTools}

\chapter{Offline Performance Tools}
\label{OfflinePerformanceTools}
\hypertarget{OfflinePerformanceTools}{}
\input{OfflinePerformanceTools}

\chapter{Frequently Asked Questions}
\label{FrequentlyAskedQuestions}
\hypertarget{FrequentlyAskedQuestions}{}
\input{FrequentlyAskedQuestions}

\part{StarPU Extensions}

\chapter{Out Of Core}
\label{OutOfCore}
\hypertarget{OutOfCore}{}
\input{OutOfCore}

\chapter{MPI Support}
\label{MPISupport}
\hypertarget{MPISupport}{}
\input{MPISupport}

\chapter{FFT Support}
\label{FFTSupport}
\hypertarget{FFTSupport}{}
\input{FFTSupport}

\chapter{MIC Xeon Phi / SCC Support}
\label{MICSCCSupport}
\hypertarget{MICSCCSupport}{}
\input{MICSCCSupport}

\chapter{C Extensions}
\label{cExtensions}
\hypertarget{cExtensions}{}
\input{cExtensions}

\chapter{Native Fortran Support}
\label{NativeFortranSupport}
\hypertarget{NativeFortranSupport}{}
\input{NativeFortranSupport}

\chapter{SOCL OpenCL Extensions}
\label{SOCLOpenclExtensions}
\hypertarget{SOCLOpenclExtensions}{}
\input{SOCLOpenclExtensions}

\chapter{SimGrid Support}
\label{SimGridSupport}
\hypertarget{SimGridSupport}{}
\input{SimGridSupport}

\chapter{The StarPU OpenMP Runtime Support (SORS)}
\label{OpenMPRuntimeSupport}
\hypertarget{OpenMPRuntimeSupport}{}
\input{OpenMPRuntimeSupport}

\chapter{Clustering a Machine}
\label{ClusteringAMachine}
\hypertarget{ClusteringAMachine}{}
\input{ClusteringAMachine}

\chapter{Interoperability Support}
\label{InteropSupport}
\hypertarget{InteropSupport}{}
\input{InteroperabilitySupport}

\part{StarPU Reference API}

\chapter{Execution Configuration Through Environment Variables}
\label{ExecutionConfigurationThroughEnvironmentVariables}
\hypertarget{ExecutionConfigurationThroughEnvironmentVariables}{}
\input{ExecutionConfigurationThroughEnvironmentVariables}

\chapter{Compilation Configuration}
\label{CompilationConfiguration}
\hypertarget{CompilationConfiguration}{}
\input{CompilationConfiguration}

\chapter{Module Index}
\input{modules}

\chapter{Deprecated List}
\input{deprecated}

\chapter{Module Documentation a.k.a StarPU's API}
\label{ModuleDocumentation}
\hypertarget{ModuleDocumentation}{}

\input{group__API__Versioning}
\input{group__API__Initialization__and__Termination}
\input{group__API__Standard__Memory__Library}
\input{group__API__Toolbox}
\input{group__API__Threads}
\input{group__API__Bitmap}
\input{group__API__Workers__Properties}
\input{group__API__Data__Management}
\input{group__API__Data__Interfaces}
\input{group__API__Data__Partition}
\input{group__API__Out__Of__Core}
\input{group__API__Multiformat__Data__Interface}
\input{group__API__Codelet__And__Tasks}
\input{group__API__Insert__Task}
\input{group__API__Explicit__Dependencies}
\input{group__API__Implicit__Data__Dependencies}
\input{group__API__Performance__Model}
\input{group__API__Profiling}
\input{group__API__Theoretical__Lower__Bound__on__Execution__Time}
\input{group__API__CUDA__Extensions}
\input{group__API__OpenCL__Extensions}
\input{group__API__OpenMP__Runtime__Support}
\input{group__API__MIC__Extensions}
\input{group__API__SCC__Extensions}
\input{group__API__Miscellaneous__Helpers}
\input{group__API__FxT__Support}
\input{group__API__FFT__Support}
\input{group__API__MPI__Support}
\input{group__API__Task__Bundles}
\input{group__API__Task__Lists}
\input{group__API__Parallel__Tasks}
\input{group__API__Running__Drivers}
\input{group__API__Expert__Mode}
\input{group__API__StarPUTop__Interface}
\input{group__API__Scheduling__Contexts}
\input{group__API__Scheduling__Policy}
\input{group__API__Tree}
\input{group__API__SC__Hypervisor__usage}
\input{group__API__SC__Hypervisor}
\input{group__API__Modularized__Scheduler}
\input{group__API__Clustering__Machine}
\input{group__API__Interop__Support}

\chapter{File Index}
\input{files}

\chapter{File Documentation}
\label{FileDocumentation}
\hypertarget{FileDocumentation}{}

\input{starpu_8h}
\input{starpu__bitmap_8h}
\input{starpu__bound_8h}
\input{starpu__clusters_8h}
\input{starpu__config_8h}
\input{starpu__cublas_8h}
\input{starpu__cusparse_8h}
\input{starpu__cuda_8h}
\input{starpu__data_8h}
\input{starpu__data__filters_8h}
\input{starpu__data__interfaces_8h}
\input{starpu__deprecated__api_8h}
\input{starpu__disk_8h}
\input{starpu__driver_8h}
\input{starpu__expert_8h}
\input{starpu__fxt_8h}
\input{starpu__hash_8h}
\input{starpu__mic_8h}
\input{starpu__mod_8f90}
\input{starpu__mpi_8h}
\input{starpu__mpi__lb_8h}
\input{starpu__opencl_8h}
\input{starpu__openmp_8h}
\input{starpu__perfmodel_8h}
\input{starpu__profiling_8h}
\input{starpu__rand_8h}
\input{starpu__scc_8h}
\input{starpu__sched__component_8h}
\input{starpu__sched__ctx_8h}
\input{starpu__sched__ctx__hypervisor_8h}
\input{starpu__scheduler_8h}
\input{starpu__simgrid__wrap_8h}
\input{starpu__sink_8h}
\input{starpu__stdlib_8h}
\input{starpu__task_8h}
\input{starpu__task__bundle_8h}
\input{starpu__task__list_8h}
\input{starpu__task__util_8h}
\input{starpu__thread_8h}
\input{starpu__thread__util_8h}
\input{starpu__top_8h}
\input{starpu__tree_8h}
\input{starpu__util_8h}
\input{starpu__worker_8h}
\input{starpufft_8h}
\input{sc__hypervisor_8h}
\input{sc__hypervisor__config_8h}
\input{sc__hypervisor__lp_8h}
\input{sc__hypervisor__monitoring_8h}
\input{sc__hypervisor__policy_8h}
\input{starpurm_8h}

\chapter{Deprecated List}
\label{deprecated}
\hypertarget{deprecated}{}
\input{deprecated}

\part{Appendix}

\chapter{Full Source Code for the ’Scaling a Vector’ Example}
\label{FullSourceCodeVectorScal}
\hypertarget{FullSourceCodeVectorScal}{}
\input{FullSourceCodeVectorScal}

\chapter{The GNU Free Documentation License}
\label{GNUFreeDocumentationLicense}
\hypertarget{GNUFreeDocumentationLicense}{}
\input{GNUFreeDocumentationLicense}

\part{Index}
\addcontentsline{toc}{chapter}{Index}
\printindex

\end{document}
