
\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE Checkpoints in \textsc{PaStiX}}
\end{center}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% I/O STRATEGY       %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\Sect{I/O Strategy}

You can save ordering and solver structures on disk to start
directly from step 3 (Tasks Mapping and Scheduling) when launching
\textsc{PaStiX} again.\\
Set \texttt{iparm[IPARM\_IO\_STRATEGY]} to \texttt{API\_IO\_SAVE} and call step 1 (Ordering) and 2
(Symbolic Factorization). This will create two
files, \texttt{ordergen} and \texttt{symbolgen} in the working
directory.\\
Copy (or move, or link) \texttt{ordergen} and \texttt{symbolgen} to
\texttt{ordername} and \texttt{symbolname}.\\
Set \texttt{iparm[IPARM\_IO\_STRATEGY]} to \texttt{API\_IO\_LOAD} and
then call \textsc{PaStiX} again from step 3.



\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE  Out-Of-Core in \textsc{PaStiX}}
\end{center}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% OOC STRATEGY       %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\Sect{OOC Strategy}

An out-of-core version of \textsc{PaStiX} is under development.\\
You will then have to set \texttt{iparm[IPARM\_OOC\_LIMIT]} to fix the memory limit size.

\begin{tabIIIbis}
  \hline
  \tabIIItitle{OOC compilation options}\\
  \hline
  \texttt{-DOOC}       & Simple OOC without contribution buffer management\\
  \texttt{-DOOC\_FTGT} & OOC with contribution buffer management\\
  \texttt{-DOOC\_CLOCK}& Compute time spent waiting for data to be loaded\\
  \hline
\end{tabIIIbis}


\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE  Dynamic Scheduling in \textsc{PaStiX}}
\end{center}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% MARCEL %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\Sect{Marcel}

\begin{tabIIIbis}
  \hline
  \tabIIItitle{Solver scheduling strategy - \textit{Static scheduling used by default}}\\
  \hline
  \texttt{-DPASTIX\_DYNSCHED}     & Dynamic scheduling\\
  \hline
\end{tabIIIbis}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% StarPU %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE  Using StarPU in \textsc{PaStiX}}
\end{center}

%\Sect{Marcel}


\begin{tabIIIbis}
  \hline
  \tabIIItitle{Using \texttt{StarPU} in \pastix{}}\\
  \hline
  \texttt{-DWITH\_STARPU}     & Enable \texttt{StarPU}, needs \texttt{IPARM\_STARPU} to be set to \texttt{API\_YES}\\
  \texttt{-DFORCE\_NO\_CUDA}    & Disable \texttt{CUDA} kernels (only $LL^t$ and $LU$ \texttt{GEMM} provided)\\
  \hline
\end{tabIIIbis}

%Compile with \texttt{`pm2-config --cflags` -DMARCEL} and link with \texttt{`pm2-config --libs`}.\\


\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE  Splitting communicators in \textsc{PaStiX}}
\end{center}

One can run \pastix{} on a communicator and get sequential and
\texttt{MPI+Threads} parts
runned on one MPI task per node and one thread by
processor, \texttt{MPI} only parts runned on the whole communicator
using \texttt{IPARM\_AUTOSPLIT\_COMM}.

\begin{tabIIIbis}
  \hline
  \tabIIItitle{Options linked to \texttt{IPARM\_AUTOSPLIT\_COMM}}\\
  \hline
  \texttt{-DWITH\_SEM\_BARRIER}     & Semaphore barrier on idle
  \texttt{MPI} entity (less CPU consuming)\\
  \hline
\end{tabIIIbis}

\begin{center}
%  {\LARGE More details on \textsc{PaStiX} usage.}
 {\LARGE  Multiple Arithmetic in \textsc{PaStiX}}
\end{center}


\begin{tabular}{|l|l|l|l|l|}
\hline
default          & simple              & double              & simple complex      & double complex\\
\hline
\texttt{pastix}  & \texttt{s\_pastix}  & \texttt{d\_pastix}  & \texttt{c\_pastix}  & \texttt{z\_pastix}\\
\texttt{dpastix} & \texttt{s\_dpastix} & \texttt{d\_dpastix} & \texttt{c\_dpastix} & \texttt{z\_dpastix}\\
\texttt{<function>}  & \texttt{s\_<function>}  & \texttt{d\_<function>}  & \texttt{c\_<function>}  & \texttt{z\_<function>}\\
\hline
\end{tabular}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% MULTIARITH %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\Sect{Arith}
