hp ▁engine ▁and ▁was ▁armed ▁with ▁ 5 ▁can n ons . ▁ ▁Te ib o <0x0A> </s> ▁Priv at ization ▁is ▁a ▁technique ▁used ▁in ▁shared - memory ▁programming ▁to ▁enable ▁parallel ism , ▁by ▁removing ▁dependencies ▁that ▁occur ▁across ▁different ▁threads ▁in ▁a ▁parallel ▁program . ▁Dep endencies ▁within ▁threads ▁occur ▁due ▁to ▁the ▁presence ▁of ▁variables ▁that ▁are ▁written ▁and / or ▁read ▁by ▁different ▁threads ▁at ▁the ▁same ▁time ▁during ▁execution . ▁This ▁basic ▁principle ▁of ▁this ▁technique ▁is ▁making ▁private ▁copies ▁of ▁a ▁variable ▁shared ▁by ▁multiple ▁threads , ▁hence ▁making ▁each ▁thread ▁capable ▁to ▁operate ▁on ▁its ▁local ▁copy ▁of ▁this ▁variable ▁rather ▁than ▁a ▁shared ▁one . ▁ ▁For ▁a ▁variable ▁to ▁be ▁shared ▁or ▁private , ▁is ▁specified ▁by ▁the ▁parallel ▁algorithm . ▁Hence , ▁declaring ▁a ▁variable ▁as ▁shared ▁while ▁the ▁algorithm ▁spec ifies ▁otherwise ▁or ▁vice ▁vers a ▁is ▁one ▁of ▁most ▁common ▁errors ▁that ▁might ▁appear ▁in ▁shared - memory ▁programming . ▁ ▁Trad itional ▁comp ilers ▁used ▁in ▁parallel ization ▁were ▁able ▁to ▁perform ▁priv at ization ▁on ▁scalar ▁elements ▁only . ▁In ▁order ▁to ▁explo it ▁parallel ism ▁that ▁occurs ▁across ▁loops ▁within ▁a ▁parallel ▁program ▁( loop - level ▁parallel ism ), ▁the ▁need ▁rose ▁for ▁comp ilers ▁that ▁are ▁able ▁to ▁perform ▁array ▁variable ▁priv at ization ▁as ▁well . ▁Hence , ▁most ▁of ▁today ' s ▁comp ilers ▁are ▁capable ▁of ▁performing ▁array ▁priv at ization ▁with ▁more ▁features ▁and ▁functions ▁to ▁enh ance ▁the ▁performance ▁of