÷ƒ’À;è TeX output 2003.11.26:1325‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074»Beo–ÿwmwulf‘fÑHO“WTOŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Jacek–U Rada‘Ž0jewski“and“Douglas“Eadline’¹Ëëv1.1.1,“22“No•¸èv“em“bre‘U 1998Ž¡Ÿ&°óŒ6 ecss1000¼Questo–^ÝdošGcumento“intro˜duce“l'aš¸èrchitettura“Beo˜wulf“pšGer“Sup˜ercomputer“e“foš¸èrnisce“info˜rmazioni“di“base“sulla“p˜ro-Ž¡grammazione–òSpa¸èrallela,‘Ÿinsieme“a“link“ad“altri“došGcumenti“pi€ù“sp˜ecici“e“pagine“w¸èeb.‘IDo˜cumentazione“tradottaŽ¡dall'HackLab–U di“Firenze“(“óø8‹ ecsi1000½hacklab@renze.linux.it“¼).ŽŸ(Àœó&Lt$ffffecbx1440¿Con•cten“tsŽ©Øó]fŒ ecbx1000À1Ž‘ÿIn®>troQÂduzione’€Ó2ŽŽ¤ؼ‘ÿ¹1.1Ž‘%ý¡LibGeratoria‘Š‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ1.2Ž‘%ý¡Cop•¸èyrigh“t‘탑ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ1.3Ž‘%ý¡Note–U su“questo“HO¸èWTO‘‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ1.4Ž‘%ý¡Note–U sugli“autori‘üË‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï2ŽŽ¡‘ÿ1.5Ž‘%ý¡Riconoscimen¸èti‘à‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¦À2Ž‘ÿIn®>troQÂduzione’€Ó3ŽŽ¡‘ÿ¹2.1Ž‘%ý¡A–U cš¸èhi“€è“indirizzato“questo“HO˜WTO?‘パü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¡‘ÿ2.2Ž‘%ý¡Cos'€è–U un“Beo¸èwulf‘Ç?‘îÛ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¡‘ÿ2.3Ž‘%ý¡Classicazione<‡‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¦À3Ž‘ÿUno–Õsguardo“all'arc®>hitettura’1ùb5ŽŽ¡‘ÿ¹3.1Ž‘%ý¡A–U cosa“assomiglia?‘ §‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï5ŽŽ¡‘ÿ3.2Ž‘%ý¡Come–U usare“gli“altri“noGdi?‘“Ÿ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï6ŽŽ¡‘ÿ3.3Ž‘%ý¡In–U cosa“Beoš¸èwulf“€è“dieren˜te“da“un“CO˜W“?‘?‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï7ŽŽ¦À4Ž‘ÿProgetto–Õdel“sistema’YDË7ŽŽ¡‘ÿ¹4.1Ž‘%ý¡Una–U brev¸èe“rassegna“sulla“computazione“parallela‘Ñü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘ÿ4.2Ž‘%ý¡I–U metoGdi“della“computazione“parallela‘ ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘%ý¡4.2.1Ž‘EûŸP•¸èerc“h€é–U pi€ù“di“una“CPU?‘ñ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘%ý¡4.2.2Ž‘EûŸIl–U negozio“della“computazione“parallela‘e‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï9ŽŽ¡‘ÿ4.3Ž‘%ý¡Arc¸èhitetture–U pGer“la“computazione“parallela‘O‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?10ŽŽ¡‘%ý¡4.3.1Ž‘EûŸArc•¸èhitetture‘U Hardw“are‘”Q‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?10ŽŽ¡‘%ý¡4.3.2Ž‘EûŸArcš¸èhitetture–U API“soft˜w˜are‘?‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?11ŽŽ¡‘%ý¡4.3.3Ž‘EûŸArc¸èhitettura‘U dell'applicazione‘À ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?12ŽŽ¡‘ÿ4.4Ž‘%ý¡F‘ÿ*¸attibilit€à‘‰û‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?12ŽŽ¡‘ÿ4.5Ž‘%ý¡Scrittura–U e“pGorting“di“soft•¸èw“are‘U parallelo‘G{‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?13ŽŽ¡‘%ý¡4.5.1Ž‘EûŸDeterminare–U le“parti“concorren¸èti“di“un“programma‘µ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?14ŽŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽÀ1.‘ñ8In®>troQÂduzione’~¯œ¹2ŽŽ ÕÁ ýV¯‘%ý¡4.5.2Ž‘EûŸStima–U dell'ecienza“parallela‘ÿå‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?14ŽŽ¤ؼ‘%ý¡4.5.3Ž‘EûŸDescrizione–U delle“parti“concorren¸èti“di“un“programma‘®=‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽ©ØÀ5Ž‘ÿRisorse–ÕpQÂer“Beo®>wulf’UøŽ15ŽŽ¡‘ÿ¹5.1Ž‘%ý¡P¸èer‘U cominciare‘üs‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽ¡‘ÿ5.2Ž‘%ý¡DoGcumen¸ètazione‘™#‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?16ŽŽ¡‘ÿ5.3Ž‘%ý¡DoGcumen¸èti‘U cartacei‘’Ÿ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?16ŽŽ¡‘ÿ5.4Ž‘%ý¡Soft•¸èw“are‘B«‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?16ŽŽ¡‘ÿ5.5Ž‘%ý¡Macc•¸èhine‘U Beo“wulf‘'›‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?17ŽŽ¡‘ÿ5.6Ž‘%ý¡Altri–U siti“in•¸èteressan“ti‘½o‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?17ŽŽ¡‘ÿ5.7Ž‘%ý¡Storia‘Þ›‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?17ŽŽ¦À6Ž‘ÿCoQÂdice‘Õsorgen®>te’k@x17ŽŽ¡‘ÿ¹6.1Ž‘%ý¡sum.c‘óß‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?17ŽŽ¡‘ÿ6.2Ž‘%ý¡sigmasqrt.c‘ ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?18ŽŽ¡‘ÿ6.3Ž‘%ý¡prun.sh‘í ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?18ŽŽŸ(Àœ¿1Ž‘ÁInctropœduzioneŽŸèó¥!¢N ecbx1200Â1.1Ž‘¾Lib_úeratoriaŽ¤Mª¹Non–Báci“pšGossiamo“assumere“alcuna“resp˜onsabilit€à“p˜er“qualsiasi“informazione“sbagliata“con•¸èten“uta–Báin“questoŽ© ®došGcumen¸èto,–U n€é“p˜er“qualsiasi“danno“pro•¸èv“o˜cato–U dal“suo“uso.ŽŸ#ÃÂ1.2Ž‘¾Cop• yrigh“tŽ¡¹Cop•¸èyrigh“t‘ç·ž²×cŽŽŽ‘ vó !",š cmsy10¸ ŽŽŽ‘@í¹1997– v-“1998“Jacek“Rada‘Ž0jewski“e“Douglas“Eadline.‘ÓƒLa“pšGossibilit€à“di“distribuire“e“mo˜dicareŽ¦questo–U doGcumenš¸èto“€è“garan˜tita“dalla“GNU“General“Public“Licence.ŽŸ#ÃÂ1.3Ž‘¾Note–¸su“questo“HO WTOŽ¡¹Jacek–mþRada‘Ž0jewski“inizi€ò“a“la•¸èv“orare–mþsu“questo“doGcumenš¸èto“nel“No˜v˜em˜bre“del“1997“e“fu“subito“aiutato“da“DouglasŽ¦Eadline.‘]Dop•Go›vp“o“c•¸èhi˜mesi˜il˜Beo“wulf˜HO“WTO‘gdiv“enne˜troppGo˜grande˜e˜nell'Agosto˜1998˜v“enne˜diviso˜in˜treŽ¦doGcumen•¸èti:‘CÎil›ù»Beo“wulf˜HO“WTO,˜il˜Beo“wulf˜Arc“hitecture˜Design˜HO“WTO,˜and˜the˜Beo“wulf˜Installation˜andŽ¦A•¸èdministration›pHO“WTO.˜La˜v“ersione˜1.0.0˜del˜Beo“wulf˜HO“WTO‘p‰v“enne˜rilasciato˜al˜Lin“ux˜DoGcumen“tationŽ¦Pro‘Ž0ject–„0l'11“No•¸èv“em“bre–„01998.‘þ¯Noi“spGeriamo“cš¸èhe“questo“sia“solo“l'inizio“di“ci€ò“c˜he“do˜vrebbGe“div˜en˜tare“unŽ¦completo–U Beoš¸èwulf“DoGcumen˜tation“Pro‘Ž0ject.ŽŸ#ÃÂ1.4Ž‘¾Note–¸sugli“autoriŽŸ#‘¸ŽŽŽ‘¹Jacek–Rada‘Ž0jewski“la•¸èv“ora–come“Amministratore“di“Rete“e“sta“studiando“pGer“la“laurea“in“informaticaŽ¦‘all'Univš¸èersit€à–3Šdi“Southern“Queensland,‘k$in“Australia.‘ ½Il“suo“primo“approGccio“con“Lin˜ux“a˜vv˜enne“nelŽ¦‘1995–x´e“fu“subito“amore“a“prima“vista.‘ÜtroQÂduzione’~¯œ¹3ŽŽ ÕÁ ýV¯‘1997–«áe“sta“gioGcando“con“questa“tecnica“da“allora,‘Á‘cercando“con•¸ètin“uamen“te–«ádi“troš¸èv‘ÿqÐare“n˜uo˜vi“e“miglioriŽ¤ ®‘mo•Gdi›U p“er˜imp“ostare˜il˜tutto.‘q€Pu€ò˜essere˜con¸ètattato˜all'indirizzo˜ó½HЃ ecti1000Ãjac–ÿ}/ek@usq.e“du.auŽ©®‘¸ŽŽŽ‘¹Douglas–™ìEadline,‘¿]Ph.D.“€è“il“Presidenš¸ète“e“Direttore“della“Ricerca“a“P˜aralogic,–¿]Inc.,“Bethlehem,“P‘ÿ*¸A,‘™ìUSA.Ž¡‘Ha–jstudiato“come“Chimico“Fisico/Analitico“e“si“€è“in¸èteressato“ai“computer“n“dal“1978“quando“costru€ìŽ¡‘il–Ysuo“primo“computer“pGer“usarlo“con“le“strumenš¸ètazioni“c˜himic˜he.‘}JI‘Y suoi“attuali“in˜teressi“sono“Lin˜ux,‘Z iŽ¡‘cluster–U Beoš¸èwulf“e“gli“algoritmi“paralleli.‘q€Pu€ò“essere“raggiun˜to“all'indirizzo“Ãde–ÿ}/ad‘‚Ðline@plo“gic.c“omŽŸ#ÃÂ1.5Ž‘¾Riconoscimen tiŽŸMª¹La–æÐstesura“del“Beoš¸èwulf“HO˜WTO‘æ´€è“stato“un“proGcesso“lungo“ed“€è“nalmen˜te“completo,‘üàgrazie“a“molte“pGersone.Ž¡V‘ÿ*¸oglio–U ringraziare“le“seguen¸èti“pšGersone“p˜er“il“loro“aiuto“e“i“loro“conš¸ètributi“a“questo“HO˜WTO.ŽŸؼ‘¸ŽŽŽ‘¹Bec¸èky–U pšGer“il“suo“amore,“supp˜orto“e“comprensione.Ž¦‘¸ŽŽŽ‘¹T‘ÿ*¸om–U Sterling,“Don“Bec•¸èk“er–U e“altre“pGersone“alla“NASA“cš¸èhe“hanno“iniziato“il“progetto“Beo˜wulf.Ž¦‘¸ŽŽŽ‘¹Thanh–£ØT›ÿ*¸ran-Cong“e“la“F˜acolt€à“di“Ingegneria“e“Conš¸ètrollo“pGer“a˜v˜er“reso“dispšGonibile“p˜er“gli“esp˜erimen¸ètiŽ¡‘la–U maccš¸èhina“Beo˜wulf“Ãtop–ÿ}/c“at‘òɹ.Ž¦‘¸ŽŽŽ‘¹Il–U mio“tutor“Christopher“V‘ÿ*¸ance“pGer“molte“grandi“idee.Ž¦‘¸ŽŽŽ‘¹Il–U mio“amico“Russell“W‘ÿ*¸aldron“pGer“le“grandi“idee,“il“suo“in¸èteresse“generale“nel“progetto“e“l'aiuto.Ž¦‘¸ŽŽŽ‘¹Il–U mio“amico“Daš¸èvid“Smith“pGer“a˜v˜er“con˜trollato“questo“doGcumen˜to.Ž¦‘¸ŽŽŽ‘¹Le–U molte“pGersone“della“lista“Beoš¸èwulf“c˜he“mi“hanno“dato“feedbac˜k“e“idee.Ž¦‘¸ŽŽŽ‘¹T‘ÿ*¸utte–®ìle“pšGersone“curatrici“del“sistema“op˜erativš¸èo“Lin˜ux“e“di“tutti“i“programmi“di“soft˜w˜are“libGero“usatiŽ¡‘su›U Ãtop–ÿ}/c“at‘Gé¹e˜altre˜macc•¸èhine˜Beo“wulf.ŽŸ(Àœ¿2Ž‘ÁInctropœduzioneŽŸ¿:¹Via–þþvia“cš¸èhe“le“prestazioni“dei“computer“com˜uni“e“dell'hardw˜are“di“rete“crescono,‘iue“il“loro“prezzo“cala,Ž¡div•¸èen“ta–íjvia“via“sempre“pi€ù“facile“costruire“sistemi“di“calcolo“parallelo“dai“compšGonen¸èti“di“facile“rep˜eribilit€àŽ¡in•¸èv“ece›ˆ²c“he˜comprare˜tempi˜CPU‘ˆ¥sui˜Sup•Gercomputer˜molto˜costosi.‘ 6In˜eetti˜il˜rapp“orto˜costo˜e˜prestazioniŽ¡di–]¤una“maccš¸èhina“di“tipGo“Beo˜wulf“€è“dalle“tre“alle“dieci“v˜olte“migliore“c˜he“nei“tradizionali“SupGercomputer.Ž¡L'arc•¸èhitettura›Ú‰Beo“wulf˜€è˜scalabile,‘ó €è˜facile˜da˜realizzare˜e˜si˜dev“e˜pagare˜solo˜l'hardw“are˜in˜quan“to˜gran˜parteŽ¡del›U soft•¸èw“are˜€è˜gratuito.ŽŸ#ÃÂ2.1Ž‘¾A–¸cš hi“€è“indirizzato“questo“HO˜WTO?ŽŸMª¹Questo–koHO¸èWTO‘k'€è“adatto“pšGer“p˜ersone“c¸èhe“abbiano“un“p˜o'“di“esp˜erienza“con“il“sistema“op˜erativš¸èo“Lin˜ux.Ž¡La–_conoscenza“della“tecnologia“Beo¸èwulf“o“la“comprensione“di“sistemi“opGerativi“pi€ù“complessi“e“concetti“diŽ¡net•¸èw“orking–TÅnon“€è“essenziale,‘T×ma“qualc¸èhe“espšGerienza“con“il“calcolo“parallelo“p˜otrebb˜e“essere“utile“(d'altrondeŽ¡do•¸èvresti›Rÿa“v“ere˜qualc“he˜ragione˜p•Ger˜leggere˜questo˜do“cumen•¸èto).‘kQuesto˜HO“WTO‘R½non˜rispGonde˜a˜tutte˜leŽ¡domande–ëScš¸èhe“p•Gotrebb“ero–ëSsorgere“su“Beo˜wulf,‘ßma“noi“spGeriamo“c˜he“pGossa“darti“buone“idee“e“guidarti“nellaŽ¡giusta–`‹direzione.‘“ÁLo“scopGo“di“questo“HOš¸èWTO‘`ˆ€è“di“dare“informazioni“iniziali,‘cflink“e“riferimen˜ti“a“doGcumen˜tiŽ¡pi€ù‘U a¸èv‘ÿqÐanzati.ŽŽŽŒ‹E‚ Û_2 ý ~?Ÿ„€ÕÁGŽÀ2.‘ñ8In®>troQÂduzione’~¯œ¹4ŽŽ ÕÁ ýV¯Â2.2Ž‘¾Cos'€è–¸un“Beo wulf‘:—?ŽŸMªÃF‘ÿ;Èame›ÿ}/d–Eêwas“this“Be˜owulf:‘ýÄfar“ew“the“b˜o˜ast“of“him,›rxson“of“Scyld,˜in“the“Sc›ÿ}/andian“lands.‘¯ÿSo“b˜e˜c˜omes“it“aŽ¤ ®youth–Áto“quit“him“wel‘‚Ðl“with“his“father's“friends,›Åby“fe‘ÿ}/e“and“gift,˜that“to“aid“him,˜age‘ÿ}/d,˜in“after“days,˜c‘ÿ}/omeŽ¡warriors–4üwil‘‚Ðling,›]Oshould“war“dr‘ÿ}/aw“nigh,˜lie›ÿ}/gemen“loyal:‘Ûèby“laude˜d“de˜e˜ds“shal‘‚Ðl“an“e˜arl“have“honor“in“everyŽ¡clan.Ž©ؼ¹Beoš¸èwulf–Ôã€è“il“pi€ù“an˜tico“p•Go“ema–Ôãepico“scritto“in“inglese“arriv‘ÿqÐato“no“a“noi.‘ðȀȑÔÂla“storia“di“un“eroGe“di“grandeŽ¡forza–Êëe“coraggio“cš¸èhe“sconsse“un“mostro“c˜hiamato“Grendel.‘ÒâV‘ÿ*¸ai“a“5.7“(Storia)“pšGer“sap˜erne“di“pi€ù“dell'ero˜eŽ¡Beo¸èwulf.Ž¦Probabilmenš¸ète–¸Yci“sono“tan˜te“denizioni“di“Beo˜wulf“quan˜te“sono“le“pGersone“c˜he“realizzano“o“usano“le“carat-Ž¡teristicš¸èhe–®`dei“SupGercomputer“Beo˜wulf.‘}AAlcuni“dicono“c˜he“pGossono“essere“c˜hiamati“Beo˜wulf“solo“i“computerŽ¡realizzati–„‚allo“stesso“moGdo“della“maccš¸èhina“originale“della“NASA.“Altri“in˜v˜ece“v‘ÿqÐanno“all'estremo“e“c˜hiamanoŽ¡Beoš¸èwulf–Êòtutti“i“sistemi“di“w˜orkstation“c˜he“fanno“girare“coGdice“parallelo.‘Ò÷La“mia“denizione“di“Beo˜wulf“staŽ¡da–Kãqualcš¸èhe“parte“nel“mezzo“fra“questi“due“moGdi“di“v˜edere“ed“€è“basata“su“molti“messaggi“della“lista“Beo˜wulf:Ž¦Beoš¸èwulf–Ÿ<€è“un'arc˜hitettura“a“m˜ulticomputer“c˜he“pu€ò“essere“usata“pGer“calcoli“paralleli.‘OӀȑžæun“sistema“c˜heŽ¡normalmenš¸ète–nÁconsiste“di“un“noGdo“serv˜er“e“uno“o“pi€ù“noGdi“clien˜t“connessi“via“Ethernet“o“altri“tipi“di“rete.‘¾c€ÈŽ¡un–únsistema“costruito“usando“compGonenš¸èti“hardw˜are“com˜uni,‘#Ácome“qualunque“PC‘úCc˜he“pu€ò“far“girare“Lin˜ux,Ž¡normali–+adattatori“Ethernet“e“switcš¸èh.‘ó5Non“con˜tiene“alcun“compGonen˜te“hardw˜are“spGeciale“ed“€è“facilmen˜teŽ¡realizzabile.‘³‘Beoš¸èwulf–À{utilizza“inoltre“soft˜w˜are“com˜une“come“il“sistema“opGerativ˜o“Lin˜ux,‘RP˜arallel“VirtualŽ¡Macš¸èhine–~ü(PVM)‘~°e“Message“P˜assing“In˜terface“(MPI).“Il“noGdo“serv˜er“con˜trolla“tutto“il“cluster“e“fornisce“iŽ¡le–ïÜai“noGdi“clien•¸èt.›Aµ€È‘ïµanc“he–ïÜla“console“del“cluster“e“il“gatew•¸èa“y–ïÜcon“il“mondo“circostan¸ète.˜Grandi“macc¸èhineŽ¡Beoš¸èwulf–hƒpGossono“a˜v˜ere“pi€ù“di“un“noGdo“serv˜er“e“pGossibilmen˜te“altri“noGdi“dedicati“a“compiti“particolari,‘m[comeŽ¡pšGer–¢lesempio“console“o“stazioni“di“monitoraggio.‘5ïIn“molti“casi“i“no˜di“clienš¸èt“in“un“sistema“Beo˜wulf“sono“dedicatiŽ¡al›ŒÈla•¸èv“oro˜pGer˜il˜Beo“wulf,‘š²pi€ù˜sono˜dedicati˜meglio˜€è.‘yI‘ŒºnoGdi˜sono˜congurati˜e˜con“trollati˜dal˜noGdo˜serv“er,‘š²eŽ¡fanno–:Òsolo“ci€ò“cš¸èhe“gli“viene“detto.‘h»In“una“congurazione“disk-less“(senza“disc˜hi),‘@i“noGdi“clien˜t“non“conosconoŽ¡nemmeno–§ðil“loro“indirizzo“IP‘§Ûn€é“il“nome“ncš¸èh€é“il“serv˜er“glielo“com˜unica.‘iñUna“delle“dierenze“principali“fraŽ¡il–ýƒBeoš¸èwulf“e“il“Cluster“di“W‘ÿ*¸orkstation“(CO˜W)‘ýX€è“il“fatto“c˜he“Beo˜wulf“si“compGorta“pi€ù“come“una“macc˜hinaŽ¡singola–?kcš¸èhe“le“molte“w˜orkstation.‘0bIn“molti“casi“i“clien˜t“non“hanno“tastiere“o“monitor,‘yþe“vi“si“accede“soloŽ¡via–|‘login“remoto“o“pšGossibilmen¸ète“terminali“seriali.‘çÒUn“no˜do“Beo¸èwulf“pu€ò“essere“p˜ensato“come“un“pacc¸èhettoŽ¡compGosto–Ýda“CPU›­e“memoria“c¸èhe“pu€ò“essere“inserito“nel“cluster,‘>Œproprio“come“una“CPU˜o“un“moGdulo“diŽ¡memoria–U pGossono“essere“inlati“in“una“sc¸èheda“madre.Ž¦Beoš¸èwulf–-Onon“€è“un“n˜uo˜v˜o“pacc˜hetto“soft˜w˜are,‘5Fun“n˜uo˜v˜o“tipGo“di“rete“o“l'ultima“v˜ersione“di“sviluppGo“del“k˜ernel.Ž¡Beoš¸èwulf–i.€è“un“tecnica“di“clustering“di“computer“con“Lin˜ux“pšGer“formare“un“sup˜ercomputer“parallelo“virtuale.Ž¡Inoltre– Cci“sono“molti“paccš¸èhetti“soft˜w˜are“come“moGdic˜he“al“k˜ernel,‘: le“librerie“PVM› e“MPI˜e“programmi“diŽ¡congurazione–«cš¸èhe“rendono“l'arc˜hitettura“Beo˜wulf“pi€ù“v˜eloGce,‘À•pi€ù“facile“da“congurare“e“molto“pi€ù“usabile;Ž¡si–¡dpu€ò“creare“una“maccš¸èhina“di“classe“Beo˜wulf“usando“distribuzioni“Lin˜ux“standard“senza“alcun“soft˜w˜areŽ¡addizionale.‘¾Se›Oa•¸èv“ete˜due˜computer˜Lin“ux˜in˜rete˜c“he˜condividono˜al˜limite˜il˜le˜system˜óqLË ectt1000Ä/home˜¹via˜NFSŽ¡e–­3pšGermettono“di“eseguire“shell“remote“(rsh),‘Ã7allora“si“pu€ò“p˜ensare“di“a•¸èv“ere–­3una“semplice“maccš¸èhina“Beo˜wulfŽ¡compšGosta–U da“due“no˜di.ŽŸ#ÃÂ2.3Ž‘¾ClassicazioneŽŸMª¹I‘'´sistemi–'êBeoš¸èwulf“sono“stati“realizzati“da“una“gran“v‘ÿqÐariet€à“di“parti.‘éÞP˜er“fa˜v˜orire“le“prestazioni“sono“statiŽ¡usati–§falcuni“compGonenš¸èti“non“com˜uni“(ciošG€è“pro˜dotti“da“una“singola“ditta).‘hSPš¸èer“con˜tare“i“dieren˜ti“sistemi“eŽ¡pšGer–á˜rendere“la“spiegazione“delle“macc¸èhine“un“p˜o'“pi€ù“semplice,‘µnoi“prop˜oniamo“questo“semplice“sc¸èhema“diŽ¡classicazione:Ž¦BEO¸èWULF–U DI“CLASSE“I:Ž¦Questa–%Mclasse“di“maccš¸èhine“costruita“in˜teramen˜te“da“compGonen˜ti“com˜uni“di“facile“repGeribilit€à.‘aNoi“useremo“ilŽŽŽŒ‹T0 Û_2 ý ~?Ÿ„€ÕÁGŽÀ3.‘ñ8Uno–Õsguardo“all'arc®>hitettura’/Õö¹5ŽŽ ÕÁ ýV¯test–TÖdi“certicazione“di“"Computer“ShoppšGer"“p˜er“denire“i“comp˜onenš¸èti“com˜uni“di“facile“repGeribilit€à“(ComputerŽ¤ ®ShoppšGer–U €è“una“rivista/catalogo“mensile“sp˜essa“un“p˜ollice“di“sistemi“e“comp˜onen¸èti“p˜er“PC).“Il“test“€è“questo:Ž©ؼUn–+ÑBeoš¸èwulf“di“CLASSE–+™I“€è–+Ñuna“macc˜hina“c˜he“pu€ò“essere“realizzata“da“compGonen˜ti“tro˜v‘ÿqÐabili“in“almeno“3Ž¡cataloghi–U pubblicitari“a“carattere“nazionale“o“globale.Ž¦I–U v‘ÿqÐan¸ètaggi“di“un“sistema“di“CLASSE“I“sono:Ž©Z둸ŽŽŽ‘¹l'hardwš¸èare–U €è“repGeribile“da“molte“fon˜ti“(bassi“prezzi“e“facile“man˜utenzione)Ž¤o,‘¸ŽŽŽ‘¹non–U c'€è“dipGendenza“da“un“singolo“rivš¸èenditore“di“hardw˜areŽ¡‘¸ŽŽŽ‘¹suppšGorto–U dei“driv¸èer“dei“pro˜dotti“Lin¸èuxŽ¡‘¸ŽŽŽ‘¹€è–U basato“normalmen¸ète“su“standard“(SCSI,“Ethernet,“ecc.)Ž¦Gli–U sv‘ÿqÐan¸ètaggi“di“un“sistema“di“CLASSE“I“sono:Ž¦‘¸ŽŽŽ‘¹maggiori–U prestazioni“pGossono“ricš¸èhiedere“un“hardw˜are“di“CLASSE“IGIŽ¦Beo¸èwulf–U di“CLASSE“IGIŽ¤ؼUn–ÔÎBeoš¸èwulf“di“CLASSE–Ô­IGI“€è–ÔÎsemplicemen˜te“qualsiasi“macc˜hina“c˜he“non“soGddisfa“il“test“di“certicazione“diŽŸ ®Computer–U ShoppGer.›q€Questa“non“€è“una“cosa“brutta.˜€È“semplicemenš¸ète“una“classicazione“della“macc˜hina.Ž¡I–U v‘ÿqÐan¸ètaggi“di“un“sistema“di“CLASSE“IGI“sono:Ž¦‘¸ŽŽŽ‘¹Le–U prestazioni“pGossono“essere“abbastanza“buone!Ž¦Gli–U sv‘ÿqÐan¸ètaggi“di“un“sistema“di“CLASSE“IGI“sono:Ž¦‘¸ŽŽŽ‘¹il–U suppGorto“dei“driv¸èer“pu€ò“v‘ÿqÐariareŽ¤o,‘¸ŽŽŽ‘¹dipGendenza–U da“un“singolo“rivš¸èenditore“hardw˜areŽ¡‘¸ŽŽŽ‘¹pGossono–U essere“molto“pi€ù“costosi“di“un“sistema“di“CLASSE“I.Ž¦Una–CûCLASSE‘C÷non“€è“necessariamen¸ète“migliore“dell'altra,‘GiT‘ÿ*¸utto“dipGende“dalle“tue“necessit€à“e“dal“tuo“budget.Ž¤ ®Questa–MÜclassicazione“servš¸èe“solo“a“rendere“la“spiegazione“dei“sistemi“Beo˜wulf“un“pGo'“pi€ù“brev˜e.‘oLa“sezione“4Ž¡(Progetto–U del“sistema)“ti“pu€ò“aiutare“a“determinare“c¸èhe“tipGo“di“sistema“si“adatta“alle“tue“necessit€à.ŽŸ(¥ˆ¿3Ž‘ÁUno–G\sguardo“all'arcchitetturaŽŸèÂ3.1Ž‘¾A–¸cosa“assomiglia?ŽŸMª¹Io–ûrcredo“c¸èhe“il“miglior“mošGdo“p˜er“descrivš¸èere“l'arc˜hitettura“del“supGercomputer“Beo˜wulf“€è“quello“di“usare“unŽ¡esempio–u£molto“simile“al“Beo¸èwulf“reale“ma“molto“familiare“a“molti“amministratori“di“sistema.‘Ó L'esempioŽ¡pi€ù–¯Hvicino“ad“una“maccš¸èhina“Beo˜wulf“€è“un“labGoratorio“Unix“con“un“serv˜er“e“un“certo“n˜umero“di“clien˜t.‘øP˜erŽ¡essere–‡xancora“pi€ù“precisi“user€ò“come“esempio“il“labšGoratorio“di“computer“DEC‘‡)Alpha“p˜er“laureandi“dellaŽ¡facolt€à–\di“Scienze“dell'USQ.“Il“computer“servš¸èer“si“c˜hiama“Ãb‘ÿ}/eldin‘ݱ¹e“le“macc˜hine“clien˜t“sono“c˜hiamate“Ãscilab01‘Zð¹,Ž¡Ãscilab02–Zð¹,›‡™Ãscilab03“¹,˜no–JMa“Ãscilab20‘Zð¹.‘QT‘ÿ*¸utti“i“clien¸èt“hanno“installata“una“copia“lošGcale“del“sistema“op˜erativ¸èoŽ¡Digital– Unix“4.0“ma“condividono“la“directory“degli“utenš¸èti“Ä/home“¹e“la“directory“Ä/usr/local“¹dal“serv˜er“viaŽ¡NFS‘õâ(Net•¸èw“ork–ö File“System).‘TBOgni“clienš¸èt“ha“una“v˜ošGce“p˜er“il“serv¸èer“e“una“p˜er“ognš¸èuno“degli“altri“clien˜t“nelŽ¡suo–/àle“Ä/etc/hosts.equiv¹,‘fcos€ì“cš¸èhe“ogni“clien˜t“pu€ò“eseguire“una“shell“remota“(rsh)“in“tutti“gli“altri.‘ÀLaŽ¡macc•¸èhina›‡äserv“er˜€è˜anc“he˜serv“er˜NIS‘‡×p•Ger˜tutto˜il˜lab“oratorio,‘”•cos€ì˜c•¸èhe˜tutti˜gli˜accoun“t˜sono˜com“uni˜in˜tutteŽŽŽŒ‹h; Û_2 ý ~?Ÿ„€ÕÁGŽÀ3.‘ñ8Uno–Õsguardo“all'arc®>hitettura’/Õö¹6ŽŽ ÕÁ ýV¯le– —maccš¸èhine.‘Y¨Una“pGersona“pu€ò“sedersi“da˜v‘ÿqÐan˜ti“alla“console“di“Ãscilab02‘h‡¹ed“a˜v˜ere“la“stessa“congurazione“comeŽ¤ ®se–Wµsi“fosse“fatto“il“login“nel“servš¸èer“o“nel“clien˜t“Ãscilab15‘Zð¹.‘y>La“ragione“pGer“la“quale“tutti“i“clien˜t“hanno“lo“stessoŽ¡lošGok– 7and“feel“€è“c¸èhe“il“sistema“op˜erativ¸èo“€è“installato“e“congurato“allo“stesso“mo˜do“su“tutte“le“macc¸èhine“eŽ¡cš¸èhe–ˆsia“Ä/home“¹c˜he“Ä/usr/local“¹sono“sicamen˜te“sul“serv˜er“e“condivise“da“tutti“i“clien˜t“via“NFS.“P˜er“maggioriŽ¡informazioni–U a“propGosito“di“NIS“e“NFS“guardate“i“relativi“HO¸èWTO“a“ÃNIS“¹e“ÃNFS“¹.ŽŸ#Â3.2Ž‘¾Come–¸usare“gli“altri“no_údi?ŽŸMª¹Ora–Ùcš¸èhe“abbiamo“un'idea“circa“l'arc˜hitettura“del“sistema,‘IÈdiamo“un'oGcc˜hiata“a“come“pGossiamo“utilizzare“iŽ¡cicli–ädi“CPU‘¶dispšGonibili“nei“computer“del“lab˜oratorio.‘†ÌOgni“p˜ersona“pu€ò“fare“il“login“in“ogni“macc¸èhina,‘3UeŽ¡far–4Þgirare“un“programma“nella“sua“directory“home,‘;Rma“pu€ò“ancš¸èhe“distribuire“il“la˜v˜oro“su“macc˜hine“dieren˜tiŽ¡semplicemenš¸ète–5ªeseguendo“shell“remote.‘gP˜er“esempio,‘;õmettiamo“c˜he“v˜ogliamo“calcolare“la“somma“delle“radiciŽ¡quadrate–#di“tutti“gli“inš¸èteri“compresi“fra“1“e“10.‘\×Scriviamo“un“programma“c˜hiamandolo“Äsigmassqrt“¹(v˜edi“6.2Ž¡(CoGdice–C4sorgenš¸ète))“c˜he“fa“proprio“questo.‘k‡P˜er“calcolare“la“somma“delle“radici“quadrate“dei“n˜umeri“da“1“a“10Ž¡noi‘U eseguiamo:Ž©‹¯Ä[jacek@beldin–?¬sigmasqrt]$“time“./sigmasqrt“1“10“22.468278Ž¡¡real‘þ°0m0.029sŽ¡user‘þ°0m0.001sŽ¡sys‘>\0m0.024sŽ¦¹Il–Acomando“Ätime“¹ci“pšGermette“di“con¸ètrollare“il“temp˜o“trascorso“p˜er“completare“l'altro“comando.‘vCome“p˜ossiamoŽ¡v¸èedere,›·Qquesto–£­esempio“ha“necessitato“solo“una“frazione“di“secondo“(0,029“sec),˜ma“cosa“succederebbGe“se“ioŽ¡vš¸èolessi–«Zconoscere“la“somma“delle“radici“quadrate“degli“in˜teri“compresi“fra“1“e“1“000“000“000“(un“miliardo)?Ž¡Riproš¸èviamo–U e“ricon˜trolliamo“il“tempGo“necessario.Ž¦Ä[jacek@beldin–?¬sigmasqrt]$“time“./sigmasqrt“1“1000000000Ž¡21081851083600.559000Ž¡¡real‘þ°16m45.937sŽ¡user‘þ°16m43.527sŽ¡sys‘>\0m0.108sŽ¦¹Questa–åvš¸èolta“il“tempGo“di“esecuzione“€è“decisamen˜te“maggiore.‘!xL'o˜vvia“domanda“c˜he“sorge“€è“cosa“pGossiamoŽ¡fare–ÎpšGer“abbreviare“il“temp˜o“di“esecuzione“di“questo“programma?‘^eCome“p˜ossiamo“cam¸èbiare“il“mo˜do“in“cui“siŽ¡esegue–]ðquesto“programma“pšGer“ridurne“il“temp˜o“di“esecuzione?‘‹ïL'o¸èvvia“risp˜osta“€è“quella“di“dividere“il“la•¸èv“oroŽ¡in–÷guna“serie“di“sotto-compiti“e“di“farli“girare“in“parallelo“su“tutti“i“computer.‘RBNoi“pGossiamo“dividere“il“calcoloŽ¡di–ê›una“grossa“addizione“in“20“parti,‘ÿécalcolare“una“serie“di“radici“quadrate“e“farli“girare“su“ogni“noGdo.‘MÿQuandoŽ¡tutti–¹{i“nošGdi“niscono“il“calcolo“e“restituiscono“i“loro“risultati,‘Øœi“20“n¸èumeri“p˜ossono“essere“sommati“p˜er“ottenereŽ¡il–ì@risultato“nale.‘N‹Prima“di“far“girare“questo“programma“noi“faremo“una“named“pipGe“cš¸èhe“v˜err€à“usata“da“tuttiŽ¡i–U prošGcessi“p˜er“scriv¸èere“il“loro“risultato.Ž¦Ä[jacek@beldin–?¬sigmasqrt]$“mkfifo“outputŽ¡[jacek@beldin–?¬sigmasqrt]$“./prun.sh“&“time“cat“output“|“./sumŽ¡[1]‘?¬5085Ž¡21081851083600.941000Ž¡[1]+‘ XDone‘hùp./prun.shŽ¡¡real‘þ°0m58.539sŽŽŽŒ‹vH Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’W!_¹7ŽŽ ÕÁ ýV¯Äuser‘þ°0m0.061sŽ¤ ®sys‘>\0m0.206sŽŸؼ¹Il–™ftempšGo“c¸èhe“otteniamo“€è“di“circa“58,5“secondi.‘2íQuesto“€è“il“temp˜o“trascorso“dall'inizio“del“programma“no“allaŽ¡restituzione–‡aall'in¸èterno“della“pipšGe“dei“risultati“di“tutti“i“no˜di.‘DIl“temp˜o“cos€ì“calcolato“non“include“la“sommaŽ¡nale–ÀWdei“v•¸èen“ti›ÀWn“umeri,‘Û%ma˜questo˜tempGo˜€è˜molto˜brev“e˜e˜pu€ò˜essere˜trascurato.‘³&P“ossiamo˜cos€ì˜v“edere˜c“heŽ¡c'€è–¿pun“notevš¸èole“miglioramen˜to“eseguendo“questo“programma“in“parallelo.‘°qIn“eetti“il“programma“paralleloŽ¡ha–ü]girato“17“vš¸èolte“pi€ù“v˜eloGcemen˜te,‘&-c˜he“€è“un“buon“risultato“a˜v˜endo“incremen˜tato“di“20“v˜olte“il“n˜umero“diŽ¡CPU‘çcoin•¸èv“olte.‘]rLo–öscopšGo“di“questo“esempio“€è“quello“di“far“v¸èedere“il“meto˜do“pi€ù“semplice“di“realizzare“co˜diceŽ¡parallelo–ôÔconcorrenš¸ète.‘QgIn“pratica“pGer€ò“esempi“cos€ì“semplici“sono“rari“ma“v˜engono“usate“altre“tecnic˜he“(le“APIŽ¡PVM–U e“PMI)“pGer“ottenere“il“parallelismo.ŽŸ#ÃÂ3.3Ž‘¾In–¸cosa“Beoš wulf“€è“dieren˜te“da“un“CO˜W“?ŽŸMª¹Il–ãlabšGoratorio“di“computer“descritto“sopra“€è“un“p˜erfetto“esempio“di“un“Cluster“di“W‘ÿ*¸orkstation“(CO¸èW).“EŽ¡allora–5ácosa“ha“tanš¸èto“di“spGeciale“Beo˜wulf“e“in“cosa“€è“div˜erso“da“un“CO˜W?“La“v˜erit€à“€è“c˜he“non“c'€è“una“grandeŽ¡dierenza,‘•2ma–e6Beoš¸èwulf“ha“alcune“caratteristic˜he“pšGeculiari.‘!ˆInnanzitutto“in“molti“casi“i“no˜di“clien¸èt“di“un“clusterŽ¡Beoš¸èwulf–yÀnon“hanno“tastiere,–‚èmouse,“sc˜hede–yÀvideo“n€é“monitor.‘ßaT‘ÿ*¸utti“gli“accessi“ai“noGdi“clien˜t“sono“realizzatiŽ¡in–Æ%remoto“dal“nošGdo“serv¸èer,‘â½no˜di“cš¸èhe“fungono“solo“da“console“o“da“un“terminale“seriale.‘A×P˜oic˜h€é“non“c'€è“bisognoŽ¡pšGer–Öi“no˜di“clien¸èt“di“accedere“a“computer“al“di“fuori“del“cluster,‘$n€é“p˜er“computer“esterni“al“cluster“di“accedereŽ¡direttamenš¸ète– ›ai“nc,‘Sy€è“pratica“com˜une“dotare“i“nc“di“IP‘ fpriv‘ÿqÐati“come“gli“indirizzi“compresi“in“10.0.0.0/8“oŽ¡192.168.0.0/16–‚‘(vš¸èedi“RF˜C‘‚…1918“Ãhttp://www.alternic.net/rfcs/1900/rfc1918.txt.html“¹).‘ùÒNormalmen˜te“l'unicaŽ¡maccš¸èhina–äuconnessa“all'esterno“con“una“seconda“sc˜heda“di“rete“€è“il“noGdo“serv˜er.‘KòIl“moGdo“pi€ù“com˜une“pGer“usareŽ¡un–â»sistema“di“questo“tipGo“€è“di“usare“la“console“del“ns,‘ùœoppure“di“en¸ètrare“in“telnet“o“shell“remota“dal“computerŽ¡pGersonale.‘¦Una–à×vš¸èolta“sul“ns,‘Ågli“uten˜ti“pšGossono“mo˜dicare“e“compilare“il“loro“co˜dice“e“anc¸èhe“suddividere“iŽ¡loro–óAprogrammi“su“tutti“i“nošGdi“del“cluster.‘KãIn“molti“casi“i“CO¸èW‘ósono“usati“p˜er“calcoli“paralleli“la“notte“eŽ¡duranš¸ète–Ý“i“ne“settimana“quando“gli“uten˜ti“non“usano“eettiv‘ÿqÐamen˜te“i“computer“pGer“i“compiti“di“tutti“i“giorni,Ž¡utilizzando–Ïcos€ì“cicli“idle“di“CPU.“Beoš¸èwulf“d'altra“parte“€è“una“macc˜hina“dedicata“normalmen˜te“solo“al“calcoloŽ¡parallelo–æe“ottimizzato“pšGer“questo“scop˜o.‘ÅÒBeo¸èwulf“inoltre“ha“un“miglior“rapp˜orto“fra“prezzo“e“prestazioniŽ¡pšGoic¸èh€é–&€è“realizzato“da“comp˜onen¸èti“di“facile“rep˜eribilit€à“e“usa“normalmenš¸ète“soft˜w˜are“gratuito.‘ämBeo˜wulf“haŽ¡inoltre–›un'immagine“pi€ù“da“sistema“singolo“cosa“cš¸èhe“aiuta“gli“uten˜ti“a“v˜edere“un“cluster“Beo˜wulf“come“unaŽ¡singola‘U w¸èorkstationŽŸ(Àœ¿4Ž‘ÁProgetto–G\del“sistemaŽŸ¿:¹Prima–südi“acquistare“dell'hardw¸èare,‘¡€è“sempre“una“buona“idea“prendere“in“considerazione“il“progetto“del“sistemaŽ¡cš¸èhe–¼si“in˜tende“realizzare.‘>wF‘ÿ*¸ondamen˜talmen˜te“ci“sono“due“questioni“relativ˜e“al“progetto“di“un“sistema“Beo˜wulf:Ž¡il–Ô‘tipšGo“di“no˜di“(cio˜€è“di“computer)“da“usare“e“il“mo˜do“in“cui“tali“no˜di“sono“connessi.‘F¦C'€è“una“questione“relativ‘ÿqÐaŽ¡al›´3soft•¸èw“are,‘Ôbc“he˜pu€ò˜inuire˜sulle˜decisioni˜c“he˜riguardano˜l'hardw“are:‘! la˜libreria˜di˜com“unicazione˜(API).˜NelŽ¡seguito–q¸di“questo“doGcumenš¸èto“v˜err€à“fatta“una“discussione“pi€ù“dettagliata“riguardo“all'hardw˜are“e“al“soft˜w˜areŽ¡di‘U com¸èunicazione.ŽŸؼAncš¸èhe– se“il“n˜umero“di“pGossibilit€à“non“€è“elev‘ÿqÐato,‘²¸quando“si“costruisce“un“Beo˜wulf,‘²¸ci“sono“com˜unque“alcuneŽ¡impGortanš¸èti–g decisioni“di“progetto“da“prendere.‘§dierenza“del“"mondo“sequenziale",‘ªÝin“cui“la“v˜eloGcit€à“delŽ¡prošGcessore–Hª€è“considerato“il“solo“fattore“c¸èhe“ha“la“massima“imp˜ortanza,‘K(la“v¸èelo˜cit€à“dei“pro˜cessori“nel“"mondoŽ¡parallelo"–2¬€è“solo“uno“dei“v‘ÿqÐari“fattori“cš¸èhe“determineranno“le“prestazioni“e“l'ecienza“del“sistema“complessiv˜o.ŽŸ#ÃÂ4.2Ž‘¾I–¸meto_údi“della“computazione“parallelaŽ¦¹La–uácomputazione“parallela“pu€ò“assumere“molte“forme.‘'Dal“punš¸èto“di“vista“dell'uten˜te“€è“impGortan˜te“considerareŽ¡v›ÿqÐan¸ètaggi–^Äe“sv˜anš¸ètaggi“di“ciascuna“metoGdologia.‘bLa“sezione“seguen˜te“ten˜ta“di“dare“div˜erse“prospGettiv˜e“sui“metoGdiŽ¡della–‡computazione“parallela“e“indica“do•¸èv“e–‡v‘ÿqÐa“a“cadere“una“maccš¸èhina“Beo˜wulf“all'in˜terno“di“questo“con˜tin˜uum.ŽŸ ÖÀ4.2.1Ž‘#!\P•®>erc“h€é–Õpi€ù“di“una“CPU?Ž¦¹€È‘:éimp•Gortan¸ète›;%risp“ondere˜a˜questa˜domanda.‘#ŽUsare˜8˜CPU‘:ép“er˜eseguire˜un˜w¸èord˜pro“cessor˜suona˜un˜p“o'Ž¡"o•¸èv“er-kill"–§4“e“in“eetti“lo“€è.‘g¼Ma“cosa“dire“di“un“servš¸èer“w˜eb,›»¹una“base“di“dati,˜un“programma“di“renderingŽ¡o–Õ’uno“sc¸èhedulatore“di“progetti?›ò×F‘ÿ*¸orse“pi€ù“CPU‘Õqp•Gotrebb“ero–Õ’essere“d'aiuto.˜E‘Õqcosa“dire“di“una“sim¸èulazioneŽ¡complessa,›L.un–ÅcoGdice“c¸èhe“studia“la“dinamica“dei“uidi,˜o“un'applicazione“di“estrazione“di“dati?‘ÂoIn“questeŽ¡situazioni,›˜Ipi€ù–iCPU‘h×sono“sicuramen¸ète“d'aiuto.‘"ÒIn“eetti,˜sistemi“con“CPU‘h×mš¸èultiple“v˜engono“usati“pGer“risolv˜ereŽ¡sempre–U pi€ù“problemi.ŽŸؼGeneralmenš¸ète–ÅBla“successiv‘ÿqÐa“domanda“€è:‘)‘"P˜erc˜h€é“ho“bisogno“di“due“o“quattro“CPU?“AspGetter€ò“semplicemen˜teŽ¡il–U c¸èhip“ip•Ger-turb“o–U 986."“Ci“sono“v‘ÿqÐarie“ragioni:ŽŸؼ‘ 9b1.ŽŽŽ‘Grazie–´ìall'uso“di“sistemi“opšGerativi“m¸èulti-tasking,‘ ߀è“p˜ossibile“fare“pi€ù“cose“alla“v¸èolta.‘ãQuesto“€è“unŽ¡‘"parallelismo"–U naturale“cš¸èhe“€è“facilmen˜te“sfruttato“da“pi€ù“CPU“a“basso“costo.Ž©®‘ 9b2.ŽŽŽ‘La–öv¸èelošGcit€à“dei“pro˜cessori“v‘ÿqÐa“raddoppiando“ogni“18“mesi,‘#dma“cosa“dire“delle“v¸èelo˜cit€à“delle“RAM‘æe“degliŽ¡‘hard–…disk?‘!PurtroppšGo,‘Ðøqueste“v¸èelo˜cit€à“non“stanno“aumenš¸ètando“v˜eloGcemen˜te“cos€ì“come“quelle“delleŽ¡‘CPU.–û¼Si“tenga“presenš¸ète“c˜he“la“maggior“parte“delle“applicazioni“ric˜hiedono“"accessi“in“memoria“fuoriŽ¡‘cac¸èhe"–e“accessi“agli“hard“disk.‘[vUn“mošGdo“p˜er“aggirare“alcune“di“queste“limitazioni“consiste“nel“fare“pi€ùŽ¡‘cose–U in“parallelo.Ž¦‘ 9b3.ŽŽŽ‘Le–­cprevisioni“indicano“cš¸èhe“le“v˜elošGcit€à“dei“pro˜cessori“non“con•¸ètin“ueranno–­ca“raddoppiare“ogni“18“mesi“dop˜oŽ¡‘l'anno–U 2005.‘q€Pš¸èer“pGoter“man˜tenere“questa“tendenza“ci“sono“alcuni“ostacoli“molto“ardui“da“supGerare.Ž¦‘ 9b4.ŽŽŽ‘A‘‰µseconda–‰Âdell'applicazione,‘–ëla“computazione“parallela“pu€ò“v¸èeloGcizzare“l'esecuzione“di“un“fattore“da“2Ž¡‘a–ÐÉ500“vš¸èolte“(in“qualc˜he“caso“anc˜he“di“pi€ù).‘äzT‘ÿ*¸ali“pšGerformance“non“sono“disp˜onibili“usando“un“singoloŽ¡‘prošGcessore.‘4•Anc¸èhe–ž]i“sup˜ercomputer“c¸èhe“un“temp˜o“usa¸èv‘ÿqÐano“pro˜cessori“molto“v¸èelo˜ci,‘Âëadesso“sono“costruitiŽ¡‘utilizzando–U pi€ù“CPU“repGeribili“com•¸èunemen“te.ŽŸؼSe–¥íhai“bisogno“di“vš¸èeloGcit€à“-“sia“a“causa“di“un“problema“di“limiti“della“computazione“c˜he“di“un“problema“diŽ¡limiti–Hnell'I/O,“v‘ÿqÐale“la“pGena“considerare“il“parallelismo.‘ÉùP•¸èoic“h€é–Hla“computazione“parallela“€è“implemen¸ètataŽŽŽŒ‹ •ê Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’W!_¹9ŽŽ ÕÁ ýV¯in–¥Ãv‘ÿqÐari“mo•Gdi,‘¹ëp“er–¥Ãrisolvš¸èere“il“tuo“problema“con“il“parallelismo“do˜vranno“essere“prese“alcune“decisioni“moltoŽ¤ ®impšGortan¸èti.‘ÏQueste–É£decisioni“p˜ossono“a•¸èv“ere–É£eetti“decisivi“sulla“p˜ortabilit€à,‘æÃla“p˜erformance“e“il“costo“dellaŽ¡tua‘U applicazione.ŽŸؼPrima–›ªdi“en¸ètrare“nei“dettagli“tecnici,‘­Ldiamo“uno“sguardo“a“un“"problema“di“computazione“parallela"“reale,Ž¡usando–U un“esempio“con“il“quale“abbiamo“familiarit€à:‘q€l'attesa“in“lunghe“coGde“a“un“negozio.Ž© ÖÀ4.2.2Ž‘#!\Il–Õnegozio“della“computazione“parallelaŽŸMª¹Immaginiamo–Hun“grande“negozio“con“8“registratori“di“cassa“raggruppati“insieme“nella“parte“an¸èteriore“delŽ¡negozio.‘|ˆAssumiamo–®#cš¸èhe“ogni“cassiere/registratore“corrispGonda“a“una“CPU‘® e“ogni“clien˜te“a“un“programmaŽ¡di–órcomputer.‘LwLa“dimensione“del“programma“di“computer“(il“carico“di“la•¸èv“oro)–órcorrispGonde“alla“dimensioneŽ¡della–,spšGesa“del“clien•¸ète.‘cÔP“er–,illustrare“i“concetti“della“computazione“parallela“p˜ossono“essere“usate“le“seguen¸ètiŽ¡analogie.Ž¦ÀSistema–¼ÄopQÂerativ®>o“Single-tasking‘ ÿ`¹Un–”solo“registratore“di“cassa“€è“apGerto“(in“uso)“e“dev¸èe“servire“ogniŽ¡clienš¸ète,–U uno“alla“v˜olta.ŽŸؼEsempio–U relativ¸èo“ai“computer:‘q€MS“DOSŽ¦ÀSistemi–oýopQÂerativi“Multi-tasking:‘ ÿ`¹Un–ÛÑsolo“registratore“di“cassa“€è“apGerto,‘ý}ma“adesso“viene“servita“soloŽ¡una–šTparte“di“una“spšGesa“p˜er“vš¸èolta,‘«¡si“passa“al“prossimo“clien˜te“e“si“serv˜e“una“parte“della“sua“spGesa.‘AI‘šBclien˜tiŽ¡"sem•¸èbrano"›`¶m“uo“v“ersi˜lungo˜la˜coGda˜insieme,‘£›ma˜se˜oltre˜a˜te˜non˜ci˜sono˜altri˜clien“ti,‘£›v“errai˜servito˜pi€ùŽ¡v•¸èeloGcemen“te.ŽŸؼEsempio–U relativš¸èo“ai“computer:‘q€UNIX,“NT“utilizzan˜te“una“singola“CPUŽ¦ÀSistemi–);opQÂerativi“Multitasking“con“pi€ù“CPU:‘ ÿ`¹A¸èdesso–žIapriamo“pi€ù“registratori“di“cassa“nel“negozio.Ž¡Ogni–4£clienš¸ète“pu€ò“essere“servito“da“un“registratore“di“cassa“separato“e“la“coGda“pu€ò“m˜uo˜v˜ersi“pi€ù“v˜eloGcemen˜te.Ž¡Questa–™ÿviene“c¸èhiamata“SMP‘™«-“Multi-elabšGorazione“simmetrica“(Symmetric“Multi-pro˜cessing).‘@Sebb˜ene“ciŽ¡siano–†Lpi€ù“registratori“di“cassa“apšGerti,‘’—con•¸ètin“uerai–†La“non“m•¸èuo“v“erti–†Llungo“la“co˜da“pi€ù“v•¸èelo˜cemen“te–†Ldel“caso“inŽ¡cui–U ci“sei“solo“tu“e“un“solo“registratore“di“cassa.ŽŸؼEsempio–U relativ¸èo“ai“computer:‘q€UNIX“e“NT“con“pi€ù“CPUŽ¦ÀThread–Iµsu“un“sistema“opQÂerativš®>o“m˜ultitasking“con“pi€ù“CPU:‘ ÿ`¹Se–Ûë"spšGezzi"“gli“articoli“della“tua“sp˜esa,Ž¡puoi›°Zm•¸èuo“v“erti˜pi€ù˜v“eloGcemen“te˜sulla˜co•Gda˜usando˜pi€ù˜registratori˜di˜cassa˜allo˜stesso˜temp“o.‘ƒ.Innanzitutto,Ž¡dobbiamo–ÞjipšGotizzare“un“gran“guadagno,‘@½p˜erc¸èh€é“il“temp˜o“in•¸èv“estito–Þjnello“"sp˜ezzare“la“sp˜esa"“dev¸èe“essereŽ¡riguadagnato–¦busando“pi€ù“registratori“di“cassa.‘eEIn“teoria,‘ú²doš¸èvresti“m˜uo˜v˜erti“lungo“la“coGda“"n"“v˜olte“pi€ùŽ¡vš¸èeloGce–6di“prima,‘*ûdo˜v˜e“"n"“€è“il“n˜umero“di“registratori“di“cassa.‘rÁQuando“i“cassieri“hanno“bisogno“dei“totaliŽ¡parziali,‘Ç÷pGossono–¤¬scamš¸èbiarsi“v˜eloGcemen˜te“informazioni“guardando“e“parlando“a“ogni“altro“registratore“di“cassaŽ¡"loGcale".‘DkP•¸èossono›Íßanc“he˜curiosare˜ai˜registratori˜di˜cassa˜vicini˜pGer˜cercare˜informazioni˜di˜cui˜hanno˜bisognoŽ¡pGer›·lla•¸èv“orare˜pi€ù˜v“eloGcemen“te.‘<ïCom“unque,‘Ö÷c'€è˜un˜limite˜al˜n“umero˜di˜registratori˜di˜cassa˜c“he˜pGossono˜tro“v‘ÿqÐarsiŽ¡in–U un“pun¸èto“del“negozio.Ž©ؼLa–ãÚlegge“di“Amdal,–úinoltre,“limiter€à–ãÚla“v¸èelošGcit€à“dell'applicazione“alla“p˜orzione“sequenziale“del“programma“pi€ùŽ¡len¸èta.Ž¦Esempio–(Îrelativ¸èo“ai“computer:‘ÝUNIX›(˜oppure“NT˜con“extra“CPU˜sulla“stessa“scš¸èheda“madre“c˜he“eseguonoŽ¡programmi‘U m¸èulti-threaded.ŽŽŽŒ‹ ¨U Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’R!¯¹10ŽŽ ÕÁ ýV¯ÀInš®>vio–Ê.di“messaggi“su“sistemi“opQÂerativi“m˜ultitasking“con“pi€ù“CPU:‘ ÿ`¹Al–K¢ne“di“migliorare“la“pGerfor-Ž¤ ®mance,‘¹èil–¥Ànegozio“aggiunge“8“registratori“di“cassa“sul“retro“del“negozio.‘c`P•¸èoic“h€é–¥Ài“n•¸èuo“vi–¥Àregistratori“di“cassaŽ¡sono–ólonš¸ètani“da“quelli“c˜he“si“tro˜v‘ÿqÐano“sul“da˜v‘ÿqÐan˜ti,‘°i“cassieri“dev˜ono“c˜hiamare“questi“al“telefono“pGer“com˜unicareŽ¡i–¦ûloro“totali“parziali.‘7tT‘ÿ*¸ale“distanza“aggiunge“un“soš¸èvraccarico“(di“tempGo)“alla“com˜unicazione“tra“cassieri,‘ÉÏma“seŽ¡le– Õcomš¸èunicazioni“sono“minimizzate,‘±ci€ò“non“costituisce“un“problema.‘X½Se“fai“una“spGesa“da˜vv˜ero“molto“grande,Ž¡tale–Akda“ricš¸èhiedere“tutti“i“registratori“di“cassa,–E\allora,“come–Aka˜vv˜eniv‘ÿqÐa“prima,‘E\la“v˜eloGcit€à“pu€ò“essere“aumen˜tataŽ¡usando–Áâtutti“i“registratori“di“cassa“allo“stesso“tempGo,‘Ýe“il“soš¸èvraccarico“v‘ÿqÐa“riconsiderato.‘·ÇIn“qualc˜he“caso,‘ÝilŽ¡negozio–_¶pu€ò“a•¸èv“ere–_¶singoli“registratori“di“cassa“(o“gruppi“isolati“di“registratori“di“cassa)“sparsi“pGer“il“negozio:Ž¡ogni–~=registratore“di“cassa“(o“isola)“devš¸èe“com˜unicare“via“telefono.‘ì×P˜oic˜h€é“tutti“i“cassieri“pGossono“com˜unicareŽ¡l'un–U l'altro“attra•¸èv“erso–U il“telefono,“non“€è“molto“impGortanš¸ète“do˜v˜e“si“tro˜v‘ÿqÐano.Ž©ؼEsempio–îqrelativ¸èo“ai“computer:‘>(una“o“pi€ù“copie“di“UNIX›îWo“NT˜con“pi€ù“CPU˜sulla“stessa“o“su“dierenš¸èti“sc˜hedeŽ¡madri,–U cš¸èhe“com˜unicano“attra˜v˜erso“messaggi.Ž¦Gli–…scenari“descritti“sopra,›(¤sebbGene“non“esatti,˜sono“una“buona“rappresen¸ètazione“dei“vincoli“pGosti“sui“sistemiŽ¡paralleli.‘hKA›9zdierenza–9di“sistemi“con“singola“CPU˜(o“registratore“di“cassa),‘?qui“v‘ÿqÐa“presa“in“considerazione“laŽ¡pGossibilit€à–U di“comš¸èunicazione“tra“div˜erse“CPU.ŽŸ#ÃÂ4.3Ž‘¾Arc hitetture–¸p_úer“la“computazione“parallelaŽ©Mª¹Di–ÿseguito“vš¸èengono“presen˜tati“i“metoGdi“e“le“arc˜hitetture“com˜uni“della“computazione“parallela.‘oSebbGene“laŽ¡presenš¸ète–FÚtrattazione“non“sia“sicuramen˜te“esaurien˜te,‘Iµ€è“sucien˜te“pGer“comprendere“le“questioni“fondamen˜taliŽ¡relativš¸èe–U a“un“progetto“Beo˜wulf.ŽŸ ÖÀ4.3.1Ž‘#!\Arc•®>hitetture‘ÕHardw“areŽ¦¹Ci–U sono“fondamen•¸ètalmen“te–U due“moGdi“in“cui“viene“messo“insieme“l'hardw¸èare“dei“computer“paralleli:Ž¤ؼ‘ 9b1.ŽŽŽ‘Maccš¸èhine–U con“memoria“loGcale“c˜he“com˜unicano“median˜te“messaggi“(clusters“Beo˜wulf‘Ç)ŽŸ®‘ 9b2.ŽŽŽ‘Maccš¸èhine–U con“memoria“condivisa“c˜he“com˜unicano“attra˜v˜erso“la“memoria“(macc˜hine“SMP)Ž¡Un–Ûtipico“Beoš¸èwulf“€è“un“insieme“di“macc˜hine“con“singola“CPU,“connesse“usando“fast“Ethernet“ed“€è,‘µpGertan˜to,Ž¤ ®una–„>maccš¸èhina“a“memoria“loGcale.‘+àUna“macc˜hina“SMP‘„ a“4“vie“€è“una“macc˜hina“a“memoria“condivisa“e“pu€ò“essereŽ¡usata–gãpGer“fare“computazioni“parallele“-“applicazioni“parallele“cš¸èhe“com˜unicano“usando“la“memoria“condivisa.Ž¡Proprio–ygcome“nell'esempio“dell'analogia“negozio-computer,‘¥Yle“macc¸èhine“a“memoria“loGcale“(registratori“di“cassaŽ¡individuali)–ÂzpGossono“essere“scalati“a“grandi“nš¸èumeri“di“CPU,“men˜tre“il“n˜umero“di“CPU‘ÂUin“macc˜hine“a“memoriaŽ¡condivisa–='(il“nš¸èumero“di“registratori“di“cassa“c˜he“si“pGossono“mettere“in“un“pun˜to)“pu€ò“essere“limitato“a“causaŽ¡di–U conitti“nell'accesso“alla“memoria.Ž©ؼ€È‘9pGossibile,–comš¸èunque,“connettere–Jmolte“macc˜hine“a“memoria“condivisa“pGer“creare“una“macc˜hina“a“memoriaŽ¡condivisa– ó"ibrida".‘XÆQueste“maccš¸èhine“ibride“"appaiono"“all'uten˜te“come“una“grande“macc˜hina“SMP‘ àsingola“eŽ¡sono–%`spGesso“cš¸èhiamate“macc˜hine“NUMA‘%T(accesso“in“memoria“non“uniforme),‘.ípGerc˜h€é“la“memoria“globale“vistaŽ¡dal–Ùprogrammatore“e“condivisa“da“tutte“le“CPU‘Ùnpu€ò“a•¸èv“ere›Ùdieren“ti˜ritardi.‘þÑA‘Ùnqualc“he˜liv“ello,‘ú­com“unque,Ž¡una–U maccš¸èhina“NUMA“dev˜e“"in˜viare“messaggi"“tra“gruppi“di“memorie“loGcalmen˜te“condivise.Ž¦€È‘÷óancš¸èhe–ø pGossibile“connettere“macc˜hine“SMP‘÷ócome“nošGdi“di“computazione“a“memoria“lo˜cale.‘RyLe“tipicš¸èhe“sc˜hedeŽ¡madri–/¨della“CLASSE–/ŸI“hanno–/¨2“o“4“CPU‘/Ÿe“sono“usate“spšGesso“come“un“mezzo“p˜er“ridurre“il“costo“del“sistemaŽ¡complessiv•¸èo.‘‰Lo›¯Îsc“hedulatore˜in“terno˜di˜Lin“ux˜determina˜come˜queste˜CPU‘¯¶ottengono˜le˜risorse˜condivise.Ž¡L'utenš¸ète–›non“pu€ò“(a“questo“pun˜to)“assegnare“uno“spšGecico“task“a“uno“sp˜ecico“pro˜cessore“SMP‘ÿ*¸.“L'uten¸ète“pu€ò,Ž¡com¸èunque,‘gqiniziare–cÇdue“prošGcessi“indip˜enden¸èti“oppure“un“pro˜cesso“m¸èultithreaded“e“asp˜ettarsi“un“aumen¸èto“diŽ¡p•Gerformance›U risp“etto˜a˜un˜sistema˜a•¸èv“en“te˜una˜singola˜CPU.ŽŽŽŒ‹ ·® Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’R!¯¹11ŽŽ ÕÁ ýV¯À4.3.2Ž‘#!\Arcš®>hitetture–ÕAPI“soft˜w˜areŽŸMª¹Ci–U sono“fondamen•¸ètalmen“te–U due“mošGdi“p˜er“"esprimere"“la“concorrenza“in“un“programma:Ž¤ؼ‘ 9b1.ŽŽŽ‘Usare–U l'in¸èvio“di“messaggi“tra“proGcessoriŽŸ®‘ 9b2.ŽŽŽ‘Usare–U i“thread“del“sistema“opGerativ¸èoŽ¡Esistono–A¥altri“metošGdi,‘x½ma“questi“due“sono“quelli“pi€ù“largamen¸ète“usati.‘­€È‘A_imp˜ortanš¸ète“ricordare“c˜he“l'espressioneŽ¤ ®della–ÇŠconcorrenza“non“€è“necessariamenš¸ète“con˜trollata“dall'hardw˜are“sottostan˜te.‘È¿Sia“lo“scam˜bio“di“messaggiŽ¡cš¸èhe–œi“thread“pGossono“essere“implemen˜tati“su“SMP‘ÿ*¸,“NUMA-SMP‘he“cluster“-“sebbGene,‘R;come“spiegato“sotto,Ž¡l'ecienza–U e“la“pšGortabilit€à“sono“questioni“imp˜ortan¸èti.Ž© ÖÀMessaggi‘ ÿ`¹Storicamenš¸ète,‘ÛÙla–Àçtecnologia“dello“scam˜bio“di“messaggi“riettev‘ÿqÐa“il“moGdello“dei“primi“computerŽ¡paralleli–ïÀa“memoria“lošGcale.‘O¶I‘ï§messaggi“ric¸èhiedono“un'op˜erazione“di“copia“dei“dati,›men¸ètre“i“thread,˜corrispGon-Ž¡den•¸ètemen“te,‘¶rusano–oÈdati.‘ÁyI‘oritardi“e“le“v¸èelošGcit€à“alle“quali“i“messaggi“p˜ossono“essere“copiati“sono“i“fattoriŽ¡limitanš¸èti–=;dei“moGdelli“a“scam˜bio“di“messaggi.‘)ÑUn“messaggio“€è“piuttosto“semplice:‘A¶qualc˜he“dato“e“un“pro-Ž¡cessore–²destinatario.‘¹6Le“API‘€comš¸èuni“pGer“lo“scam˜bio“di“messaggi“sono“ÃPVM›€¹oppure“ÃMPI˜¹.“Lo“scam¸èbio“diŽ¡messaggi–1pu€ò“essere“implemenš¸ètato“ecien˜temen˜te“usando“i“thread,‘)úquindi“i“messaggi“funzionano“bGene“sia“suŽ¡macc•¸èhine›1’SMP‘1‰c“he˜tra˜cluster˜di˜macc“hine.‘e¦Il˜v‘ÿqÐan“taggio˜nell'uso˜dei˜messaggi˜su˜una˜macc“hina˜SMP‘ÿ*¸,˜in“v“eceŽ¡del–cnormale“uso“dei“thread,›f•€è“c¸èhe“se“decidi“in“futuro“di“usare“cluster,˜€è“facile“aggiungere“macc¸èhine“o“scalareŽ¡le–U tue“applicazioni.Ž¦ÀThread‘ ÿ`¹I‘cÆthread–cÊdel“sistema“opšGerativ¸èo“sono“stati“sviluppati“p˜oicš¸èh€é“i“progetti“di“SMP‘cÆ(m˜ulti-elabGorazioneŽ¡simmetrica)–Dqa“memoria“condivisa“consenš¸ètiv‘ÿqÐano“una“com˜unicazione“e“sincronizzazione“molto“v˜eloGci,‘GÇtra“partiŽ¡concorren¸èti–Þ#di“un“programma.‘ ˆI›Ýÿthread“funzionano“bGene“su“sistemi“SMP˜pGercš¸èh€é“la“com˜unicazione“a˜vvieneŽ¡attra•¸èv“erso–¦Sla“memoria“condivisa.‘ePš¸èer“questa“ragione“l'uten˜te“dev˜e“isolare“i“dati“loGcali“da“quelli“globali,Ž¡altrimen¸èti–ò=i“programmi“non“gireranno“nel“moGdo“corretto.‘ H×A‘ñÓdierenza“dei“messaggi,‘Y„con“i“thread“unaŽ¡buona–ò7parte“di“copiatura“pu€ò“essere“evitata,‘Y}pšGerc¸èh€é“i“dati“sono“condivisi“dai“pro˜cessi“(thread).‘ HÅLin¸èuxŽ¡suppGorta–·i“thread“POSIX.“Il“problema“con“i“thread“€è“cš¸èhe“€è“dicile“estenderli“oltre“una“macc˜hina“SMP‘„eŽ¡pGoicš¸èh€é–ŒLi“dati“sono“condivisi“dalle“CPU,“le“questioni“relativ˜e“alla“coGerenza“delle“cac˜he“pu€ò“con˜tribuire“alŽ¡soš¸èvraccarico.‘ÅÛEstendere–éi“thread“oltre“i“limiti“della“SMP‘¶in“moGdo“ecien˜te“ric˜hiede“la“tecnologia“NUMAŽ¡cš¸èhe–@¿€è“costosa“e“non“suppGortata“da“Lin˜ux“in“forma“nativ‘ÿqÐa.‘jµI‘@ºthread“sono“stati“implemen˜tati“sopra“i“messaggiŽ¡(›¥eÃ(http://syntr–ÿ}/on.c“om/pto“ols/pto“ols_p“g.htm)˜¹),‘ùvma˜i˜thread˜implemen¸ètati˜usando˜i˜messaggi˜sono˜spGessoŽ¡inecien¸èti.ŽŸؼRiguardo–U alla“pGerformance“si“pu€ò“aermare“quan¸èto“segue:ŽŸؼ¡‘N»Äperformance–?¬di‘$½´performance“di“un‘/= scalabilit€àŽ¡‘N»una–?¬macchina“SMP‘>\cluster“di“macchineŽ¡‘N»----------------‘>\-------------------‘$½´-----------Ž¡messaggi‘$½´buona‘SúÀottima‘hùpottimaŽ¡¡thread‘/= ottima‘N»scarsa*‘c¹Äscarsa*Ž¡¡*–?¬richiede“una“tecnologia“NUMA“costosa.ŽŽŽŒ‹ Êe Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’R!¯¹12ŽŽ ÕÁ ýV¯À4.3.3Ž‘#!\Arc®>hitettura‘Õdell'applicazioneŽŸMª¹P¸èer–}pšGoter“eseguire“un'applicazione“in“parallelo“su“pi€ù“CPU,“o˜ccorre“suddividerla“in“parti“concorren¸èti.Ž¤ ®Un'applicazione–~progettata“pGer“una“singola“CPU,“non“vš¸èerr€à“eseguita“pi€ù“v˜eloGcemen˜te“di“un'applicazioneŽ¡pGer–U singola“CPU“su“una“maccš¸èhina“m˜ultiproGcessore.Ž©ؼCi–÷Èsono“alcuni“strumenš¸èti“e“compilatori“c˜he“pšGossono“suddividere“i“programmi,‘ sma“parallelizzare“il“co˜dice,‘ snonŽ¡€è–Tun'opšGerazione“"plug'n'pla¸èy".‘#A‘Dseconda“del“tip˜o“di“applicazione,‘Ÿ parallelizzare“il“co˜dice“pu€ò“essere“facile,Ž¡estremamen¸ète–U dicile“o“addirittura“impšGossibile,“in“base“alle“dip˜endenze“dell'algoritmo.Ž¦Prima–U di“aronš¸ètare“la“questione“del“soft˜w˜are,“oGccorre“in˜troGdurre“il“concetto“di“F‘ÿ*¸attibilit€à.ŽŸ#ÃÂ4.4Ž‘¾F‘þàattibilit€àŽŸMª¹Molte–U domande“relativ¸èe“all'elabšGorazione“parallela,“hanno“la“stessa“risp˜osta:Ž¦"DipGende‘U dall'applicazione"Ž¦Prima– di“addenš¸ètrarsi“nel“problema,‘«tc'€è“un'impGortan˜te“distinzione“da“fare“-“la“dierenza“tra“CONCORRENTEŽ¡e–U P‘ÿ*¸ARALLELO.“P¸èer“il“gusto“della“discussione“deniremo“cos€ì“questi“due“concetti:Ž¦CONCORRENTI:–U parti“di“un“programma“c¸èhe“pšGossono“essere“eseguite“indip˜enden•¸ètemen“te.Ž¦P‘ÿ*¸ARALLELE:–¾?parti“CONCORRENTI‘¾di“un“programma“eseguite“da“proGcessori“divš¸èersi“nello“stesso“momen˜to.Ž¦La–Îddistinzione“€è“molto“imp•Gortanš¸ète,‘ìµp“oic˜h€é–Îdla“CONCORRENZA‘ÎD€è“una“propriet€à“del“programma,‘ìµmen˜tre“ilŽ¡P‘ÿ*¸ARALLELISMO‘91€è–9kuna“propriet€à“della“macc•¸èhina.‘bIdealmen“te–9kun'esecuzione“parallela“do¸èvrebbGe“risultareŽ¡in–æ3prestazioni“pi€ù“vš¸èeloGci.‘$¹Il“fattore“limitan˜te“nelle“prestazioni“parallele“€è“la“v˜eloGcit€à“di“com˜unicazione“e“laŽ¡latenza–Šõfra“i“noGdi“(la“latenza“esiste“ancš¸èhe“con“applicazioni“i“cui“thread“sono“eseguiti“su“CPU‘Š¦div˜erse,‘ØkaŽ¡causa–Cldella“necessit€à“di“conš¸ètrollare“la“coGerenza“della“cac˜he“-“cac˜he“coherency).‘k™Molti“dei“com˜uni“bGenc˜hmarkŽ¡paralleli–îÄsono“altamenš¸ète“paralleli,‘=quindi“latenza“e“com˜unicazione“non“costituiscono“colli“di“bGottiglia.‘ObQuestoŽ¡tipGo–˜[di“problema“pu€ò“essere“cš¸èhiamato“"o˜vviamen˜te“parallelo".‘;2Altre“applicazioni“non“sono“cos€ì“semplici“edŽ¡eseguire–qparti“CONCORRENTI›pÒdel“programma“in“P‘ÿ*¸ARALLELO˜p•Gotrebb“e–qcausare“un“rallen•¸ètamen“to‘qdelŽ¡programma,‘zvv‘ÿqÐanicando–?Ëcos€ì“ogni“miglioramenš¸èto“di“prestazioni“otten˜uto“nelle“parti“CONCORRENTI‘?ŽdelŽ¡programma.‘t{In–«taltre“parole,‘ il“tempGo“di“comš¸èunicazione“impiegato“dev˜e“essere“propGorzionato“con“quelloŽ¡impiegato–U nell'elabGorazione,“altrimenš¸èti“l'esecuzione“P‘ÿ*¸ARALLELA“di“parti“CONCORRENTI“€è“inecien˜te.Ž¦€È›lücompito–mdel“programmatore“determinare“quali“parti“CONCORRENTI˜del“programma“dev¸èono“essere“ese-Ž¡guite–áin“P‘ÿ*¸ARALLELO›àôe“quali“NO.“La“rispGosta“a“ci€ò“determiner€à“l'EFFICIENZA˜dell'applicazione.‘JÑIl“gracoŽ¡c¸èhe–U segue,“riassume“la“situazione“pGer“il“programmatore:ŽŸؼ¡¡¡¡‘/= Ä|‘?¬*Ž¡‘/= |‘?¬*Ž¡‘/= |‘?¬*Ž¡–?¬%“di‘þ°|“*Ž¡‘?¬appli-– X|“*Ž¡–?¬cazione“|‘ X*Ž¡‘/= |‘ X*Ž¡‘/= |‘ X*Ž¡‘/= |‘þ°*Ž¡‘/= |‘>\*ŽŽŽŒ‹ Øá Û_2 ý ~?Ÿ„€ÕÁGŽÀ4.‘ñ8Progetto–Õdel“sistema’R!¯¹13ŽŽ ÕÁ ýV¯‘/= Ä|‘~*Ž¤ ®‘/= |‘)ý`****Ž¡‘/= |‘>ü****Ž¡‘/= |‘SúÀ********************Ž¡‘/= +-----------------------------------Ž¡‘4|¸tempo–?¬di“comunicazione/tempo“di“elaborazioneŽŸؼ¹In–oun“pšGerfetto“computer“parallelo,‘ il“rapp˜orto“fra“com¸èunicazione“e“elab˜orazione“sarebb˜e“uguale,‘ e“tutto“ci€ò“c¸èheŽ¡fosse›™cCONCORRENTE‘™3p•Gotrebb“e˜essere˜implemen•¸ètato˜in˜P‘ÿ*¸ARALLELO.˜Sfortunatamen“te˜computer˜paralleliŽ¡reali,›Þàincluse–ÁPmacc¸èhine“con“memoria“condivisa,˜sono“soggette“agli“eetti“descritti“nel“graco.‘@;Chi“progetta“unŽ¡Beoš¸èwulf,‘Ö¼tenga–¼Ðin“men˜te“questo“graco,‘Ö¼pGerc˜h€é“l'ecienza“dell'elabšGorazione“parallela“dip˜ende“dal“rapp˜ortoŽ¡fra–YtempšGo“di“com¸èunicazione“e“temp˜o“di“elab˜orazione“p˜er“UNO–,SPECIFICO“COMPUTER“P‘ÿ*¸ARALLELO.Ž¡Le–/Sapplicazioni“pšGossono“essere“p˜ortabili“fra“computer“paralleli,‘6ãma“non“c'€è“garanzia“cš¸èhe“saranno“ecien˜ti“suŽ¡una–U piattaforma“dieren¸ète.Ž¤ؼIN–U GENERALE,“NON“ESISTE“UN“PR¸èOGRAMMA“P›ÿ*¸ARALLELO“POR˜T˜ABILE“ED“EFFICIENTE.Ž¡C'€è–[lancora“un'altra“conseguenza“del“graco“di“cui“sopra.‘„cP•¸èoic“h€é–[ll'ecienza“dipšGende“dal“rapp˜orto“com¸èu-Ž¤ ®nic./elab.,‘†(camš¸èbiare–I&un“solo“compGonen˜te“del“rappGorto“non“signica,–†(necessariamen˜te,“c˜he‘I&un'applicazioneŽ¡sar€à–|pi€ù“v¸èelošGce.‘‚”Un“pro˜cessore“pi€ù“v•¸èelo˜ce,‘1“man“tenendo–|la“stessa“v¸èelo˜cit€à“di“com¸èunicazione,‘1“p˜otrebb˜e“nonŽ¡a•¸èv“ere–̳eetti“visibili“sul“programma.‘Ø8Pš¸èer“esempio,‘ê—raddoppiando“o“triplicando“la“v˜eloGcit€à“della“CPU,“man-Ž¡tenendo–UCla“stessa“vš¸èeloGcit€à“di“com˜unicazione,‘UKp•Gotrebb“e–UCfar“s€ì“c˜he“alcune“pGorzioni“c˜he“prima“erano“eseguite“inŽ¡P‘ÿ*¸ARALLELO,–Þ×adesso“siano“pi€ù“ecien¸èti“se“eseguite“SEQUENZIALMENTE.“Quindi,‘öadesso“p•Gotrebb“e‘Þ×essereŽ¡pi€ù–êtvš¸èeloGce“eseguire“le“parti“c˜he“prima“erano“P‘ÿ*¸ARALLELE,“come“SEQUENZIALI.“Inoltre,‘Éuna“inecien˜teŽ¡esecuzione–ßdi“pšGorzioni“parallele,‘=Oimp˜edir€à“all'applicazione“di“raggiungere“la“sua“massima“v¸èelo˜cit€à.‘ž½QuindiŽ¡l'aggiunš¸èta–®fdi“un“proGcessore“pi€ù“v˜elošGce“p˜otrebb˜e“rallen¸ètare“l'applicazione“(imp˜edendo“alla“n•¸èuo“v‘ÿqÐa‘®fCPU‘® diŽ¡raggiungere–U la“sua“massima“v¸èelošGcit€à,“p˜er“quell'applicazione).Ž¤ؼSOSTITUIRE–U LA“CPU“CON“UNA“PI€Ù“VELOCE,“POTREBBE“RALLENT‘ÿ*¸ARE“L'APPLICAZIONE.Ž¡In›,ßconclusione,–bÏquindi,“p•Ger˜sap“ere˜se˜usare˜o˜no˜un'arc¸èhitettura˜parallela,‘bÏo“ccorre˜a•¸èv“ere˜un˜pGo'˜di˜in“tuitoŽ¤ ®circa–C!l'adeguatezza“di“una“particolare“maccš¸èhina“pGer“un'applicazione.‘k€Occorre“tener“presen˜te“sv‘ÿqÐariati“fattori,Ž¡incluso–Êhla“v¸èeloGcit€à“della“CPU,“il“compilatore,›çºle“"message“passing“API",˜la“rete,˜ecc.‘ÑWInoltre“oGccorre“tenerŽ¡presen•¸ète›U c“he˜l'a“v“er˜tracciato˜lo˜sc“hema˜di˜un'applicazione˜non˜€è˜tutto.Ž©ؼ€È‘ÀÉpšGossibile–Àäiden¸èticare“una“p˜orzione“del“programma“in“cui“€è“ric¸èhiesta“una“p˜esan¸ète“elab˜orazione,‘ÛÕma“non“€èŽ¡pšGossibile–}ûconoscerne“il“costo“in“termini“di“com•¸èunicazione.‘ìP“otrebb˜e–}ûessere“c¸èhe,‘ˆ1p˜er“un“certo“sistema,‘ˆ1i“costiŽ¡di–U comš¸èunicazione“rendano“inecien˜te“l'esecuzione“in“parallelo“del“coGdice.Ž¦Una–KÞnota“nale“su“un“malinš¸èteso“com˜une.‘U»SpGesso“viene“detto“c˜he“un“programma“€è“P–ÿ*¸ARALLELIZZA“TO,Ž¡ma–â`in“realt€à“solo“le“parti“CONCORRENTI‘âti“di“un“programmaŽŸMª¹Questo–[Òpasso“€è“spGesso“considerato“come“"parallelizzazione“del“programma".‘…—Le“decisioni“sulle“paralleliz-Ž¦zazioni,–U v¸èerranno“prese“nel“passo“2.‘q€In“questo“passo“ošGccorre“determinare“le“data“dep˜endencies.ŽŸؼDa–ª#un“pun¸èto“di“vista“pratico,‘¿cle“applicazioni“pšGossono“esp˜orre“due“tipi“di“concorrenza:‘…p˜esan¸èti“elab˜orazioniŽ¦(macina›ŠPn•¸èumeri,‘²à"n“um“bGer˜crunc“hing")˜e˜I/O‘Š(database).‘-æSebb•Gene˜in˜molti˜casi˜la˜concorrenza˜di˜elab“orazioneŽ¦e–â™I/O‘â|sono“ortogonali,‘ùci“sono“applicazioni“cš¸èhe“li“ric˜hiedono“en˜tram˜bi.‘KSEsistono“alcuni“strumen˜ti“c˜he“pGossonoŽ¦eettuare–}Auna“analisi“di“concorrenza“sulle“applicazioni“esistenš¸èti.‘éâLa“maggior“parte“di“questi“strumen˜ti“sonoŽ¦progettati–…pšGer“il“F¸èOR‘ÿ*¸TRAN.“Due“sono“le“ragioni“p˜er“cui“viene“utilizzato“il“Fš¸èOR‘ÿ*¸TRAN:“storicamen˜te“laŽ¦maggior–'ñparte“di“applicazioni“cš¸èhe“eettuano“n˜umerosi“calcoli“sono“state“scritte“in“F˜OR‘ÿ*¸TRAN‘'æed“€è“pi€ù“facileŽ¦da–ƒøanalizzare.‘þ Se“non“ci“sono“strumen¸èti“dispGonibili,›®questo“passo“pu€ò“essere“complicato,˜pGer“le“applicazioniŽ¦esisten¸èti.Ž¡À4.5.2Ž‘#!\Stima–Õdell'ecienza“parallelaŽŸMª¹Senza–èÍl'aiuto“di“strumenš¸èti,‘þxquesto“passo“pu€ò“ric˜hiedere“pro˜v˜e“ed“errori,‘þxo“solo“pro˜v‘ÿqÐare“form˜ulare“delle“ipGotesi.Ž¦P¸èer–È„ogni“spšGecica“applicazione“o˜ccorre“pro¸èv‘ÿqÐare“a“determinare“se“ha“dei“limiti“di“CPU‘È`(legati“all'elab˜orazione)Ž¦o–¶‡di“hard“disk“(legati“all'I/O).“Le“esigenze“di“Beoš¸èwulf“pGossono“dierire“in“base“alle“necessit€à.‘•µP˜er“esempioŽ¦un–Óvproblema“legato“all'elabšGorazione“pu€ò“a•¸èv“er–Óvbisogno“di“p˜o˜cš¸èhe“CPU‘ÓVmolto“v˜eloGci“e“una“rete“molto“v˜eloGce,Ž¦menš¸ètre–U un“problema“legato“all'I/O“pu€ò“funzionare“meglio“con“pi€ù“CPU“pi€ù“len˜te“e“una“fast“Ethernet.Ž¤ؼQuesta– Rraccomandazione,›óin“genere,˜€è“una“sorpresa“pšGer“molte“p˜ersone,‘óp˜ercš¸èh€é“€è“un“luogo“com˜une“c˜he“iŽ¦prošGcessori–}pi€ù“v¸èelo˜ci“sono“sempre“meglio.‘éPQuesto“€è“v¸èero“se“si“disp˜one“di“un“budget“illimitato,‘Ç i“sistemiŽ¦reali–­ŒpšGossono“a•¸èv“ere–­Œvincoli“di“costo“c¸èhe“o˜ccorre“v‘ÿqÐalutare.‘zÄP¸èer“i“problemi“legati“all'I/O,“c'€è“una“regola“p˜o˜coŽ¦conosciuta–U (cš¸èhiamata“Legge“Eadline-Dedk˜o˜v)“c˜he“€è“abbastanza“utile:Ž¡P•¸èoic“h€é–çÈdue“computer“paralleli“con“lo“stesso“indice“di“prestazioni“pGer“la“somma“delle“CPU,“quello“c¸èhe“ha“iŽ¦proGcessori–Lpi€ù“lenš¸èti“(e“probabilmen˜te“una“corrispGonden˜te“rete“di“com˜unicazione“pi€ù“len˜ta“fra“i“proGcessori)Ž¦aš¸èvr€à–U prestazioni“migliori“pGer“quelle“applicazioni“c˜he“fanno“largo“uso“di“I/O.Ž¡Men¸ètre–ìPla“profondit€à“di“questa“regola“v‘ÿqÐa“oltre“lo“scopšGo“di“questo“do˜cumen¸èto,‘p˜otrebb˜e“essere“in•¸èteressan“teŽ¦scaricare–Š°il“doGcumen¸èto“ÃPerformanc–ÿ}/e›Ä÷Consider“ations˜for˜I/O-Dominant˜Applic“ations˜on˜Par“al‘‚Ðlel˜ComputersŽ¦¹(P¸èostscript–U format“109K)“Ã(ftp://www.plo–ÿ}/gic.c“om/pub/p“ap“ers/exs-p“ap6.ps)Ž¡¹Una–ßv¸èolta“determinato“il“tipšGo“di“concorrenza“dell'applicazione,‘¹o˜ccorre“stimare“quan¸èto“p˜ossa“essere“ecien¸èteŽ¦in–U parallelo.‘q€V‘ÿ*¸edere“la“sezione“5.4“(Soft•¸èw“are)–U pGer“una“descrizione“degli“strumenš¸èti“Soft˜w˜are.Ž¡In–Xassenza“di“strumenš¸èti,‘æoGccorre“pro˜v‘ÿqÐare“ad“ipšGotizzare“la“propria“strada,‘æin“questa“fase.‘ )Se“un'elab˜orazioneŽ¦c•¸èhe›uÀric“hiede˜molta˜cpu˜pu€ò˜essere˜misurata˜in˜min“uti˜e˜i˜dati˜pGossono˜essere˜trasferiti˜in˜secondi,‘½èalloraŽŽŽŒ‹÷ Û_2 ý ~?Ÿ„€ÕÁGŽÀ5.‘ñ8Risorse–ÕpQÂer“Beo®>wulf’T•¹15ŽŽ ÕÁ ýV¯p•Gotrebb“e–këessere“una“buona“candidata“pšGer“la“parallelizzazione.‘µàOccorre“ricordare,–qp˜er€ò,“c¸èhe–këse“un“lo˜op“di“16Ž¤ ®minš¸èuti–èviene“suddiviso“in“32“parti,‘Ššil“trasferimen˜to“dei“dati“ric˜hiede“div˜ersi“secondi“pGer“parte,‘Ššallora“le“coseŽ¡pGotranno–U essere“dicili.‘q€Si“raggiunger€à“un“pun¸èto“in“cui“i“ritorni“sono“ridotti.Ž© ÖÀ4.5.3Ž‘#!\Descrizione–Õdelle“parti“concorren®>ti“di“un“programmaŽŸMª¹Ci–U sono“div¸èersi“mošGdi“p˜er“descrivš¸èere“le“parti“concorren˜ti“di“un“programma:Ž¤ؼ‘ 9b1.ŽŽŽ‘Esecuzione–U parallela“esplicitaŽŸ®‘ 9b2.ŽŽŽ‘Esecuzione–U parallela“implicitaŽ¡La–ú÷maggiore“dierenza“fra“le“due“€è“cš¸èhe“l'esplicita“€è“determinata“dall'uten˜te,‘ ÿmen˜tre“l'implicita“€è“determinataŽ¤ ®dal‘U compilatore.Ž¦ÀMetoQÂdi–/ñespliciti“In“pratica“l'utenš®>te“dev˜e“spQÂecicatamen˜te“mošQÂdicare“il“co˜dice“sorgen®>te“p˜erŽ¡un–õ`computer“parallelo.‘|øL'utenš®>te“dev˜e“aggiungere“messaggi“usando“óë ecbi1000ÅPVM›õXÀo“ÅMPI˜Ào“aggiungereŽ¡thread–Üusando“i“thread“POSIX‘Ü(ošQÂccorre“ricordare,–Þ[p˜er€ò,“c®>he–Üi“thread“non“si“p˜ossono“m•®>uo“v“ereŽ¡fra–Ypiastre“madri“SMP).‘ ÿ`¹I‘é3metoGdi–éNespliciti“sono“i“pi€ù“dicili“da“implemen¸ètare“e“da“mettere“sotto“debug.Ž¡Gli–Auten¸èti,›Ein“genere,˜includono“cš¸èhiamate“a“funzioni“esplicite“in“sorgen˜ti“standard“F˜OR‘ÿ*¸TRAN‘A 77“o“C/C++.Ž¡Alla–’älibreria“MPI‘’Ôsono“state“aggiunš¸ète“alcune“funzioni“pGer“rendere“pi€ù“facili“da“implemen˜tare“alcuni“metoGdiŽ¡paralleli–·3standard“(ad“es.›—¹le“funzioni“scatter/gather).˜Inoltre“€è“pšGossibile“usare“librerie“standard“scritte“p˜erŽ¡computer–U paralleli.‘q€Occorre“considerare“sempre,“pšGer€ò“il“rapp˜orto“fra“p˜ortabilit€à“ed“ecienza).ŽŸؼPš¸èer–`1ragioni“storic˜he,‘¢öla“maggior“parte“dei“sorgen˜ti“di“programmi“c˜he“eettuano“pGesan˜ti“calcoli“("n˜um˜bGerŽ¡cruncš¸èhing")–­Zsono“scritti“in“F˜OR‘ÿ*¸TRAN.“P˜er“questo“motiv˜o,‘Îèil“F˜OR‘ÿ*¸TRAN‘­/ha“il“suppGorto“maggiore“(strumen˜ti,Ž¡librerie,‘3’ecc.)‘‡^p•Ger›l'elab“orazione˜parallela.‘‡^Molti˜programmatori,–3’adesso,“utilizzano˜il˜C‘ço˜riscriv¸èono˜in˜CŽ¡v•¸èecc“hie–U¬applicazioni“scritte“in“Fš¸èOR‘ÿ*¸TRAN“con“l'idea“c˜he“il“C“pGermetter€à“un'esecuzione“pi€ù“v˜eloGce.‘s%Questo“€èŽ¡v•¸èero,‘_dal› /momen“to˜c“he˜il˜C‘ €è˜quan“to˜di˜pi€ù˜vicino˜ad˜un˜linguaggio˜macc“hina˜univ“ersale,‘_ma˜ha˜anc“he˜alcuniŽ¡sv‘ÿqÐanš¸ètaggi.‘QáL'utilizzo–öCdi“pun˜tatori,‘ wulf’T•¹16ŽŽ ÕÁ ýV¯‘¸ŽŽŽ‘¹Extreme–U Linš¸èux“Soft˜w˜are“di“Red“Hat“Ãhttp://www.r–ÿ}/e“dhat.c“om/extr“emeŽ©#ÃÂ5.2Ž‘¾Do_úcumen tazioneŽŸ#‘¸ŽŽŽ‘¹L'ultima–U vš¸èersione“del“Beo˜wulf“HO˜WTO“Ãhttp://www.sci.usq.e–ÿ}/du.au/sta/jac“ek/b“e“owulf‘U ¹.Ž¤®‘¸ŽŽŽ‘¹Costruire–U un“sistema“Beo¸èwulf“Ãhttp://www.c–ÿ}/acr.c“alte“ch.e“du/b“e“owulf/tutorial/building.htmlŽ¡‘¸ŽŽŽ‘¹I–U link“di“Jacek“su“Beo¸èwulf“Ãhttp://www.sci.usq.e–ÿ}/du.au/sta/jac“ek/b“e“owulf‘U ¹.Ž¡‘¸ŽŽŽ‘¹Beoš¸èwulf–8ÀInstallation“and“A˜dministration“HO˜WTO–8x(DRAFT)“Ãhttp://www.sci.usq.e–ÿ}/du.au/sta/jac“ek/b“e“owulfŽŸ ®‘¹.Ž¡‘¸ŽŽŽ‘¹Lin•¸èux›U P“arallel˜ProGcessing˜HO“WTO˜Ãhttp://yar–ÿ}/a.e“cn.pur“due.e“du/pplinux/PPHO¾˜WTO/pphowto.htmlŽ¦Â5.3Ž‘¾Do_úcumen ti‘¸cartaceiŽŸ#‘¸ŽŽŽ‘¹Chance›4ÞResc•¸èhk“e,–;RThomas˜Sterling,“Daniel˜Ridge,“Daniel˜Sa¸èv‘ÿqÐarese,“Donald˜Bec•¸èk“er,‘;Rand˜Phillip˜Merk“eyŽ¤ ®‘ÃA‘iDesign– Study“of“A¾˜lternative“Network“T‘ÿ;Èop–ÿ}/olo“gies– for“the“Be›ÿ}/owulf“Par˜al‘‚Ðlel“W‘ÿ;Èorkstation‘ÄU¹.‘ [¨Pro-Ž¡‘ceedings–{ÿFifth“IEEE‘{³Inš¸èternational“SympGosium“on“High“P˜erformance“Distributed“Computing,‘Ŷ1996.Ž¡‘Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/HPDC96/hp“dc96.htmlŽ©®‘¸ŽŽŽ‘¹Daniel–¥Ridge,›†Donald“Bec•¸èk“er,˜Phillip‘¥Merk“ey‘ÿ*¸,˜Thomas–¥Sterling“Bec•¸èk“er,˜and–¥Phillip“Merk¸èey‘ÿ*¸.Ž¡‘ÃHarnessing–§the“Power“of“Par‘ÿ}/al‘‚Ðlelism“in“a“Pile-of-PCs‘Ò¹.‘y?ProGceedings,–ƒIEEE‘¬-A¸èerospace,“1997.Ž¡‘Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/AA97/aa97.psŽ¦‘¸ŽŽŽ‘¹Thomas–iSterling,›nDonald“J.“Bec•¸èk“er,˜Daniel‘iSa“v‘ÿqÐarese,˜Mic“hael–iR.“Berry‘ÿ*¸,˜and“Chance“Res.‘­]ÃA‘ÿ}/chieving‘¦ aŽ¡‘Balanc–ÿ}/e“d›¡L“ow-Cost˜A¾˜r“chite“ctur“e˜for˜Mass˜Stor“age˜Management˜thr“ough˜Multiple˜F‘ÿ;Èast˜Ethernet˜Chan-Ž¡‘nels–«on“the“Be›ÿ}/owulf“Par˜al‘‚Ðlel“W‘ÿ;Èorkstation‘ÄU¹.‘’ ProGceedings,‘b¯In•¸èternational›_ùP“arallel˜Pro•Gcessing˜Symp“osium,Ž¡‘1996.‘q€Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/IPPS96/ipps96.htmlŽ¦‘¸ŽŽŽ‘¹Donald–lxJ.“Bec•¸èk“er,–²NThomas›lxSterling,“Daniel˜Sa¸èv‘ÿqÐarese,“Bruce˜F‘ÿ*¸ryxell,“Kevin˜Olson.‘·ˆÃCommunic‘ÿ}/ationŽ¡‘Overhe›ÿ}/ad–ŸYfor“Sp˜ac˜e“Scienc˜e“Applic˜ations“on“the“Be˜owulf“Par˜al‘‚Ðlel“W‘ÿ;Èorkstation‘ÄU¹.‘—…ProGceedings,High‘aÌP¸èer-Ž¡‘formance–U and“Distributed“Computing,“1995.‘q€Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/HPDC95/hp“dc95.htmlŽ¦‘¸ŽŽŽ‘¹Donald–  “J.“Bec•¸èk“er,– soThomas›  “Sterling,“Daniel˜Sa¸èv‘ÿqÐarese,“John˜E.˜Dorband,“Uda•¸èy“a˜A.Ž¡‘Rana•¸èw“ak,‘¬YCharles–šçV.“P•¸èac“k“er.‘BÖÃBEOš¾˜WULF:‘ôA–€ñP‘ÿ;ÈARALLEL“W˜ORKST–ÿ;ÈA“TION–€ñF˜OR“SCIEN-Ž¡‘TIFIC‘;8COMPUT–ÿ;ÈA“TION‘£t¹.–e–ProGceedings,‘ ©³Inš¸èternational“Conference“on“P˜arallel“ProGcessing,‘ ©³95.Ž¡‘Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/ICPP95/icpp95.htmlŽ¦‘¸ŽŽŽ‘¹Pš¸èapGers–U at“the“Beo˜wulf“site“Ãhttp://www.b–ÿ}/e“owulf.or“g/p“ap“ers/p“ap“ers.htmlŽŸ#ÃÂ5.4Ž‘¾Soft• w“areŽŸ#‘¸ŽŽŽ‘¹PVM–U -“Pš¸èarallel“Virtual“Mac˜hine“Ãhttp://www.epm.ornl.gov/pvm/pvm_home.htmlŽ¦‘¸ŽŽŽ‘¹LAM/MPI–U (LoGcal“Area“Multicomputer“/“Message“Pš¸èassing“In˜terface)“Ãhttp://www.mpi.nd.e‘ÿ}/du/lamŽ¦‘¸ŽŽŽ‘¹BER›ÿ*¸T77–U -“F¸èOR˜TRAN“con•¸èv“ersion–U toGol“Ãhttp://www.plo–ÿ}/gic.c“om/b“ert.htmlŽ¦‘¸ŽŽŽ‘¹Beo•¸èwulf›U soft“w“are˜from˜Beo“wulf˜Pro‘Ž0ject˜P“age˜Ãhttp://b–ÿ}/e“owulf.gsfc.nasa.gov/softwar“e/softwar“e.htmlŽ¦‘¸ŽŽŽ‘¹Jacek's–U Beo¸èwulf-utils“Ãftp://ftp.sci.usq.e–ÿ}/du.au/pub/jac“ek/b“e“owulf-utilsŽ¦‘¸ŽŽŽ‘¹Beo•¸èwulfatc“h–U -“cluster“monitoring“toGol“Ãhttp://www.sci.usq.e–ÿ}/du.au/sta/jac“ek/Be“owulfatchŽŽŽŒ‹â Û_2 ý ~?Ÿ„€ÕÁGŽÀ6.‘ñ8CoQÂdice‘Õsorgen®>te’iݹ17ŽŽ ÕÁ ýV¯Â5.5Ž‘¾Macc• hine‘¸Beo“wulfŽŸý㑸ŽŽŽ‘¹A‘þã v‘ÿqÐalon–×µ€è“compšGosto“da“140“pro˜cessori“Alpha,‘ðÊ36“GB›וdi“RAM˜ed“€è“probabilmenš¸ète“la“pi€ù“v˜eloGce“macc˜hinaŽ¤ ®‘Beoš¸èwulf,‘Óviaggiando–ïIa“47,7“Gigaop“e“si“tro˜v‘ÿqÐa“al“114Ÿü^ÿó O!â…cmsy7·ŽŽ‘ˆ-¹pGosto“della“lista“dei“500“computer“pi€ù“v˜eloGci.Ž¡‘Ãhttp://swift.lanl.gov/avalon/Ž©cÖ‘¸ŽŽŽ‘¹Megalon-A‘. Massiv¸èely–.P›ÿ*¸Arallel“CompuT˜er“Resource“(MP˜A¸èCTR)‘. €è“compšGosto“da“14“no˜di“CPU‘. P•¸èen“tiumŽ¡‘Pro–U quadriproGcessore“200“e“da“14“GB“di“RAM.“Ãhttp://me–ÿ}/galon.c“a.sandia.gov/description.htmlŽ¦‘¸ŽŽŽ‘¹theHIVE‘’„-–“œHighly-parallel“Inš¸ètegrated“Virtual“En˜vironmen˜t“€è“un“altro“v˜elošGce“Sup˜ercomputerŽ¡‘Beo¸èwulf.‘}theHIVE‘W²€è–XýcompšGosto“da“64“no˜di,‘ ™õ128“CPU‘W²p˜er“un“totale“di“4“GB‘W²RAM.Ž¡‘Ãhttp://newton.gsfc.nasa.gov/thehive/Ž¦‘¸ŽŽŽ‘¹T‘ÿ*¸opGcat–…W€è“una“macc¸èhina“molto“pi€ù“piccola“e“consiste“di“16“CPU›„Ce“da“1,2“GB˜di“RAM.Ž¡‘Ãhttp://www.sci.usq.e–ÿ}/du.au/sta/jac“ek/top“c“atŽ¦‘¸ŽŽŽ‘¹MAš¸èGI‘ àŒcluster– âÁ-“questo“€è“un“sito“molto“in˜teressan˜te“con“molti“link“in˜teressan˜ti.Ž¡‘Ãhttp://no‘ÿ}/el.feld.cvut.cz/magi/Ž¤"ýÎÂ5.6Ž‘¾Altri–¸siti“in• teressan“tiŽŸý㑸ŽŽŽ‘¹SMP–U Lin¸èux“Ãhttp://www.linux.or‘ÿ}/g.uk/SMP/title.htmlŽ¦‘¸ŽŽŽ‘¹Pš¸èaralogic–U -“Buy“a“Beo˜wulf“Ãhttp://www.plo–ÿ}/gic.c“omŽ¡Â5.7Ž‘¾StoriaŽŸý㑸ŽŽŽ‘¹Leggende–U -“Beo¸èwulf“Ãhttp://le–ÿ}/gends.dm.net/b“e“owulf/index.htmlŽ¦‘¸ŽŽŽ‘¹Le›U a•¸èvv“en“ture˜di˜Beo“wulf˜Ãhttp://www.lnstar.c–ÿ}/om/liter“atur“e/b“e“owulf/b“e“owulf.htmlŽŸ( §¿6Ž‘ÁCopœdice‘G\sorgencteŽŸèÂ6.1Ž‘¾sum.cŽŸMªÄ/*–?¬Jacek“Radajewski“jacek@usq.edu.au“*/Ž¤ ®/*–?¬21/08/1998“*/Ž¡¡#include‘?¬Ž¡#include‘?¬Ž¡¡int–?¬main“(void)“{Ž¡¡‘ Xdouble–?¬result“=“0.0;Ž¡‘ Xdouble–?¬number“=“0.0;Ž¡‘ Xchar‘?¬string[80];Ž¡¡¡‘ Xwhile–?¬(scanf("%s",“string)“!=“EOF)“{Ž¡¡‘þ°number–?¬=“atof(string);Ž¡‘þ°result–?¬=“result“+“number;ŽŽŽŒ‹'( Û_2 ý ~?Ÿ„€ÕÁGŽÀ6.‘ñ8CoQÂdice‘Õsorgen®>te’iݹ18ŽŽ ÕÁ ýV¯‘ XÄ}Ž¤ ®¡‘ Xprintf("%lf\n",‘?¬result);Ž¡¡‘ Xreturn‘?¬0;Ž¡¡}Ž©#ÃÂ6.2Ž‘¾sigmasqrt.cŽŸMªÄ/*–?¬Jacek“Radajewski“jacek@usq.edu.au“*/Ž¡/*–?¬21/08/1998“*/Ž¡¡#include‘?¬Ž¡#include‘?¬Ž¡¡int–?¬main“(int“argc,“char**“argv)“{Ž¡¡‘ Xlong–?¬number1,“number2,“counter;Ž¡‘ Xdouble‘?¬result;Ž¡¡‘ Xif–?¬(argc“<“3)“{Ž¡‘þ°printf–?¬("usage“:“%s“number1“number2\n",argv[0]);Ž¡‘þ°exit(1);Ž¡‘ X}–?¬else“{Ž¡‘þ°number1–?¬=“atol“(argv[1]);Ž¡‘þ°number2–?¬=“atol“(argv[2]);Ž¡‘þ°result–?¬=“0.0;Ž¡‘ X}Ž¡¡‘ Xfor–?¬(counter“=“number1;“counter“<=“number2;“counter++)“{Ž¡‘þ°result–?¬=“result“+“sqrt((double)counter);Ž¡‘ X}Ž¡¡‘ Xprintf("%lf\n",‘?¬result);Ž¡¡‘ Xreturn‘?¬0;Ž¡¡}Ž¦Â6.3Ž‘¾prun.shŽŸMªÄ#!/bin/bashŽ¡#–?¬Jacek“Radajewski“jacek@usq.edu.auŽ¡#‘?¬21/08/1998Ž¡¡export‘?¬SIGMASQRT=/home/staff/jacek/beowulf/HOWTO/example1/sigmasqrtŽ¡¡#–?¬$OUTPUT“must“be“a“named“pipeŽ¡#–?¬mkfifo“outputŽŽŽŒ‹/Ú Û_2 ý ~?Ÿ„€ÕÁGŽÀ6.‘ñ8CoQÂdice‘Õsorgen®>te’iݹ19ŽŽ ÕÁ ýV¯¤ ®Äexport‘?¬OUTPUT=/home/staff/jacek/beowulf/HOWTO/example1/outputŽ¡¡rsh–?¬scilab01“$SIGMASQRT‘/= 1‘ X50000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab02“$SIGMASQRT‘ X50000001“100000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab03“$SIGMASQRT“100000001“150000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab04“$SIGMASQRT“150000001“200000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab05“$SIGMASQRT“200000001“250000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab06“$SIGMASQRT“250000001“300000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab07“$SIGMASQRT“300000001“350000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab08“$SIGMASQRT“350000001“400000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab09“$SIGMASQRT“400000001“450000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab10“$SIGMASQRT“450000001“500000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab11“$SIGMASQRT“500000001“550000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab12“$SIGMASQRT“550000001“600000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab13“$SIGMASQRT“600000001“650000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab14“$SIGMASQRT“650000001“700000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab15“$SIGMASQRT“700000001“750000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab16“$SIGMASQRT“750000001“800000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab17“$SIGMASQRT“800000001“850000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab18“$SIGMASQRT“850000001“900000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab19“$SIGMASQRT“900000001“950000000“>“$OUTPUT“<“/dev/null&Ž¡rsh–?¬scilab20“$SIGMASQRT“950000001“1000000000“>“$OUTPUT“<“/dev/null&ŽŽŽŒø4ƒ’À;èÛ_2ÕÁGóë ecbi1000óqLË ectt1000ó½HЃ ecti1000ó¥!¢N ecbx1200ó]fŒ ecbx1000ó&Lt$ffffecbx1440óø8‹ ecsi1000óŒ6 ecss1000óþÖëI½q½qecss2074ó 1ê± ecrm1000ó !",š cmsy10ó O!â…cmsy7ù:~ßßßß