InitializationCell is an option for Cell that specifies whether the cell should be tagged to be evaluated by the Mathematica kernel when the notebook that contains it is opened.
Additional front end options determine the precise behavior of initialization cells when a notebook is opened.
When you first save a notebook that contains initialization cells, you have the option to make a parallel auto-generated .m package that contains only the contents of the initialization cells. The package is by default automatically updated whenever the initialization cells in the notebook are changed and saved again.