▁synchron ization ▁if ▁access es ▁to ▁the ▁variable ▁need ▁to ▁happen ▁in ▁order ▁to ▁ensure ▁the ▁correct ness .. ▁ ▁S cal ar ▁vs . ▁Array ▁Vari ables ▁Priv at ization ▁ ▁As ▁it ▁appears ▁from ▁the ▁previous ▁variables ’ ▁definitions , ▁the ▁Read / Write ▁Conf lic ting ▁variables ▁can ▁either ▁be ▁scal ars ▁or ▁arrays . ▁Hence , ▁Priv at ization ▁can ▁be ▁applied ▁on ▁both ▁types ▁of ▁variables . ▁ ▁When ▁applied ▁to ▁scalar ▁variables , ▁the ▁additional ▁space ▁and ▁overhead ▁introduced ▁by ▁making ▁the ▁extra ▁private ▁copies ▁per ▁threads ▁is ▁relatively ▁small . ▁However , ▁applying ▁priv at ization ▁on ▁array ▁elements ▁is ▁much ▁more ▁complex . ▁ ▁When ▁dealing ▁with ▁arrays , ▁the ▁compiler ▁tries ▁to ▁analyze ▁the ▁behavior ▁of ▁each ▁array ▁element ▁separately ▁and ▁check ▁for ▁the ▁order ▁it ' s ▁( read ) ▁and / or ▁( written ). ▁If ▁each ▁element ▁is ▁being ▁( written ▁to ) ▁before ▁it ' s ▁being ▁( read ) ▁in ▁the ▁same ▁loop ▁iteration , ▁then ▁this ▁array ▁can ▁be ▁priv at ized ▁to ▁remove ▁conflicts ▁and ▁enable ▁priv at ization . ▁To ▁be ▁able ▁to ▁priv at ize ▁such ▁array , ▁the ▁compiler ▁needs ▁to ▁further ▁analyze ▁the ▁array ▁to ▁combine ▁its ▁access es ▁into ▁sections . ▁Moreover , ▁the ▁compiler ▁should ▁have ▁extra ▁functions , ▁to ▁be ▁able ▁to ▁manipulate ▁and ▁deal ▁with ▁the ▁array ▁elements . ▁For ▁example , ▁some ▁array ▁expressions ▁may ▁have ▁symbol ic ▁terms , ▁hence , ▁to ▁be ▁able ▁to ▁priv at