# PetscPreLoadBegin
Begin a segment of code that may be preloaded (run twice) to get accurate timings 
## Synopsis
```
#include <petsclog.h>
void PetscPreLoadBegin(PetscBool  flag,char *name);
```
Not Collective


## Input Parameters

- ***flag -*** PETSC_TRUE to run twice, `PETSC_FALSE` to run once, may be overridden
with command line option -preload true or -preload false
- ***name -*** name of first stage (lines of code timed separately with -log_view) to
be preloaded



## Usage
```none
     PetscPreLoadBegin(PETSC_TRUE,"first stage);
       lines of code
       PetscPreLoadStage("second stage");
       lines of code
     PetscPreLoadEnd();
```





## Note
Only works in C/C++, not Fortran

Flags available within the macro.

- ***PetscPreLoadingUsed -*** true if we are or have done preloading
- ***PetscPreLoadingOn -*** true if it is CURRENTLY doing preload
- ***PetscPreLoadIt -*** 0 for the first computation (with preloading turned off it is only 0) 1 for the second
- ***PetscPreLoadMax -*** number of times it will do the computation, only one when preloading is turned on
The first two variables are available throughout the program, the second two only between the PetscPreLoadBegin()
and PetscPreLoadEnd()



## See Also
 [](ch_profiling), `PetscLogEventRegister()`, `PetscLogEventBegin()`, `PetscLogEventEnd()`, `PetscPreLoadEnd()`, `PetscPreLoadStage()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/logging/plog.c.html#PetscPreLoadBegin">src/sys/logging/plog.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex10.c.html">src/ksp/ksp/tutorials/ex10.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex27.c.html">src/ksp/ksp/tutorials/ex27.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex72.c.html">src/ksp/ksp/tutorials/ex72.c.html</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/logging/plog.c)


[Index of all Profiling routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
