▁the ▁parallel ▁program ▁in ▁general . ▁An ▁example ▁of ▁such ▁compiler ▁is ▁the ▁Pol aris ▁parallel izing ▁compiler ▁ ▁Description ▁ ▁A ▁Shared - Memory ▁Mult ip ro cess or ▁is ▁defined ▁as ▁" A ▁computer ▁system ▁composed ▁of ▁multiple ▁independent ▁process ors ▁that ▁execute ▁different ▁instruction ▁streams ". ▁The ▁Shared ▁memory ▁programming ▁model ▁is ▁the ▁major ▁and ▁most ▁widely ▁used ▁model ▁in ▁the ▁design ▁space ▁of ▁Shared - Memory ▁Mult ip ro cess ors . ▁This ▁programming ▁model ▁starts ▁with ▁the ▁identification ▁of ▁parallel ism ▁within ▁a ▁piece ▁of ▁code ▁( recogn ition ▁of ▁parallel ▁tasks ) ▁and ▁then ▁mapping ▁these ▁tasks ▁into ▁threads . ▁ ▁The ▁next ▁step ▁is ▁Det erm ining ▁the ▁S cope ▁of ▁Vari ables ▁used ▁in ▁a ▁parallel ▁program , ▁which ▁is ▁one ▁of ▁the ▁key ▁steps ▁and ▁main ▁concerns ▁within ▁this ▁model . ▁ ▁Det erm ining ▁the ▁S cope ▁of ▁Vari ables ▁ ▁As ▁mentioned ▁before , ▁after ▁the ▁programming ▁model ▁ident ifies ▁all ▁parallel ▁tasks ▁within ▁our ▁parallel ▁program , ▁the ▁next ▁step ▁would ▁be ▁grouping ▁these ▁tasks ▁into ▁bigger ▁tasks , ▁as ▁there ▁typically ▁would ▁be ▁more ▁tasks ▁than ▁the ▁available ▁process ors ▁within ▁our ▁system . ▁Typ ically , ▁the ▁number ▁of ▁execution ▁threads ▁that ▁the ▁tasks ▁are ▁assigned ▁to , ▁is ▁chosen ▁to ▁be ▁less ▁than ▁or ▁equal ▁to ▁the ▁number ▁of ▁process ors , ▁with ▁each ▁thread ▁assigned ▁to ▁a ▁unique ▁processor . ▁ ▁Right ▁after ▁this ▁step , ▁the ▁use ▁of ▁variables ▁within ▁our ▁identified ▁parallel ▁tasks ▁need ▁to