I/O బస్సుల రూపకల్పన కంప్యూటర్ ధమనులను సూచిస్తుంది మరియు పైన జాబితా చేయబడిన ఒకే భాగాల మధ్య ఎంత మరియు ఎంత త్వరగా డేటాను మార్పిడి చేయవచ్చో గణనీయంగా నిర్ణయిస్తుంది. హై పెర్ఫార్మెన్స్ కంప్యూటింగ్ (HPC) ఫీల్డ్లో ఉపయోగించే కాంపోనెంట్స్ ద్వారా టాప్ కేటగిరీకి నాయకత్వం వహిస్తారు. 2020 మధ్య నాటికి, HPC యొక్క సమకాలీన ప్రతినిధులలో Nvidia Tesla మరియు DGX, Radeon Instinct మరియు Intel Xeon Phi GPU- ఆధారిత యాక్సిలరేటర్ ఉత్పత్తులు ఉన్నాయి (ఉత్పత్తి పోలికల కోసం [1,2] చూడండి).
NUMA ని అర్థం చేసుకోవడం
నాన్-యూనిఫాం మెమరీ యాక్సెస్ (NUMA) సమకాలీన మల్టీ ప్రాసెసింగ్ సిస్టమ్లలో ఉపయోగించే షేర్డ్ మెమరీ ఆర్కిటెక్చర్ని వివరిస్తుంది. NUMA అనేది మొత్తం నోడ్ల మధ్య మొత్తం మెమరీని పంచుకునే విధంగా అనేక సింగిల్ నోడ్లతో కూడిన ఒక కంప్యూటింగ్ సిస్టమ్: ప్రతి CPU కి దాని స్వంత స్థానిక మెమరీ కేటాయించబడుతుంది మరియు సిస్టమ్లోని ఇతర CPU ల నుండి మెమరీని యాక్సెస్ చేయవచ్చు [12,7].
NUMA అనేది కంప్యూటర్లో అందుబాటులో ఉన్న కంప్యూటర్ మెమరీ మొత్తానికి బహుళ సెంట్రల్ ప్రాసెసింగ్ యూనిట్లను (CPU) కనెక్ట్ చేయడానికి ఉపయోగించే ఒక తెలివైన వ్యవస్థ. ఒకే NUMA నోడ్లు స్కేలబుల్ నెట్వర్క్ (I/O బస్సు) ద్వారా కనెక్ట్ చేయబడ్డాయి, తద్వారా CPU ఇతర NUMA నోడ్లతో అనుబంధించబడిన మెమరీని క్రమపద్ధతిలో యాక్సెస్ చేయగలదు.
స్థానిక మెమరీ అనేది CPU ఒక నిర్దిష్ట NUMA నోడ్లో ఉపయోగిస్తున్న మెమరీ. విదేశీ లేదా రిమోట్ మెమరీ అనేది CPU మరొక NUMA నోడ్ నుండి తీసుకుంటున్న మెమరీ. స్థానిక మెమరీని యాక్సెస్ చేసే ఖర్చుతో విదేశీ మెమరీని యాక్సెస్ చేసే ఖర్చు నిష్పత్తిని NUMA నిష్పత్తి అనే పదం వివరిస్తుంది. ఎక్కువ నిష్పత్తి, ఎక్కువ వ్యయం, అందువలన మెమరీని యాక్సెస్ చేయడానికి ఎక్కువ సమయం పడుతుంది.
అయితే, ఆ CPU దాని స్వంత స్థానిక మెమరీని యాక్సెస్ చేస్తున్నప్పుడు కంటే ఎక్కువ సమయం పడుతుంది. లోకల్ మెమరీ యాక్సెస్ ఒక ప్రధాన ప్రయోజనం, ఎందుకంటే ఇది తక్కువ లాటెన్సీని అధిక బ్యాండ్విడ్త్తో మిళితం చేస్తుంది. దీనికి విరుద్ధంగా, ఏదైనా ఇతర CPU కి చెందిన మెమరీని యాక్సెస్ చేయడం వలన ఎక్కువ జాప్యం మరియు తక్కువ బ్యాండ్విడ్త్ పనితీరు ఉంటుంది.
తిరిగి చూస్తే: షేర్డ్-మెమరీ మల్టీప్రాసెసర్ల పరిణామం
ఫ్రాంక్ డెన్నెమన్ [8] ఆధునిక సిస్టమ్ ఆర్కిటెక్చర్లు నిజంగా ఏకరీతి మెమరీ యాక్సెస్ (UMA) ని అనుమతించలేదని పేర్కొన్నాయి, అయినప్పటికీ ఈ వ్యవస్థలు ప్రత్యేకంగా ఆ ప్రయోజనం కోసం రూపొందించబడ్డాయి. సరళంగా చెప్పాలంటే, ఇచ్చిన పనిని లెక్కించడానికి సహకరించే ప్రాసెసర్ల సమూహాన్ని కలిగి ఉండటం సమాంతర కంప్యూటింగ్ ఆలోచన, తద్వారా క్లాసికల్ సీక్వెన్షియల్ గణనను వేగవంతం చేస్తుంది.
ఫ్రాంక్ డెన్నెమన్ [8] వివరించినట్లుగా, 1970 ల ప్రారంభంలో, రిలేషనల్ డేటాబేస్ సిస్టమ్ల పరిచయంతో బహుళ సమకాలీన యూజర్ ఆపరేషన్లు మరియు అధిక డేటా జనరేషన్ని అందించగల సిస్టమ్ల అవసరం ప్రధానమైంది. యూనిప్రాసెసర్ పనితీరు యొక్క ఆకట్టుకునే రేటు ఉన్నప్పటికీ, ఈ పనిభారాన్ని నిర్వహించడానికి మల్టీప్రాసెసర్ వ్యవస్థలు మెరుగ్గా ఉన్నాయి. ఖర్చుతో కూడుకున్న వ్యవస్థను అందించడానికి, షేర్డ్ మెమరీ అడ్రస్ స్పేస్ పరిశోధన యొక్క కేంద్రంగా మారింది. ప్రారంభంలో, క్రాస్బార్ స్విచ్ని ఉపయోగించే సిస్టమ్లు సూచించబడ్డాయి, అయితే ఈ డిజైన్ సంక్లిష్టతతో ప్రాసెసర్ల పెరుగుదలతో పాటు స్కేల్ చేయబడింది, ఇది బస్ ఆధారిత వ్యవస్థను మరింత ఆకర్షణీయంగా చేసింది. బస్ సిస్టమ్లోని ప్రాసెసర్లు బస్పై అభ్యర్థనలు పంపడం ద్వారా మొత్తం మెమరీ స్థలాన్ని యాక్సెస్ చేయవచ్చు, అందుబాటులో ఉన్న మెమరీని సాధ్యమైనంత ఉత్తమంగా ఉపయోగించడానికి చాలా ఖర్చుతో కూడుకున్న మార్గం.
ఏదేమైనా, బస్సు ఆధారిత కంప్యూటర్ సిస్టమ్లు అడ్డంకితో వస్తాయి-పరిమిత స్థాయి బ్యాండ్విడ్త్ స్కేలబిలిటీ సమస్యలకు దారితీస్తుంది. సిస్టమ్కు ఎక్కువ CPU లు జోడించబడతాయి, ప్రతి నోడ్కు తక్కువ బ్యాండ్విడ్త్ అందుబాటులో ఉంటుంది. ఇంకా, ఎక్కువ CPU లు జోడించబడితే, బస్సు ఎక్కువసేపు ఉంటుంది మరియు ఫలితంగా ఎక్కువ జాప్యం జరుగుతుంది.
చాలా CPU లు రెండు డైమెన్షనల్ ప్లేన్లో నిర్మించబడ్డాయి. CPU లు కూడా ఇంటిగ్రేటెడ్ మెమరీ కంట్రోలర్లను జోడించాల్సి ఉంటుంది. ప్రతి CPU కోర్కు నాలుగు మెమరీ బస్సులను (ఎగువ, దిగువ, ఎడమ, కుడి) కలిగి ఉన్న సాధారణ పరిష్కారం పూర్తి అందుబాటులో ఉన్న బ్యాండ్విడ్త్ను అనుమతించింది, కానీ అది ఇప్పటివరకు మాత్రమే వెళుతుంది. CPU లు గణనీయమైన సమయం కోసం నాలుగు కోర్లతో నిలిచిపోయాయి. చిప్స్ 3D గా మారడంతో వికర్ణంగా వ్యతిరేకించబడిన CPU లపైకి ఎగువ మరియు దిగువ ట్రేస్లను జోడించడం అనుమతించబడుతుంది. కార్డుకు నాలుగు-కోర్ CPU ని ఉంచడం, ఆ తర్వాత బస్సుకి కనెక్ట్ చేయడం తదుపరి తార్కిక దశ.
నేడు, ప్రతి ప్రాసెసర్ షేర్డ్ ఆన్-చిప్ కాష్ మరియు ఆఫ్-చిప్ మెమరీతో అనేక కోర్లను కలిగి ఉంది మరియు సర్వర్లోని మెమరీలోని వివిధ భాగాలలో వేరియబుల్ మెమరీ యాక్సెస్ ఖర్చులను కలిగి ఉంది.
డేటా యాక్సెస్ సామర్థ్యాన్ని మెరుగుపరచడం అనేది సమకాలీన CPU డిజైన్ యొక్క ప్రధాన లక్ష్యాలలో ఒకటి. ప్రతి CPU కోర్కు చిన్న స్థాయి ఒక కాష్ (32 KB) మరియు పెద్ద (256 KB) స్థాయి 2 కాష్ ఉన్నాయి. వివిధ కోర్లు తరువాత అనేక MB స్థాయి 3 కాష్ను పంచుకుంటాయి, దీని పరిమాణం కాలక్రమేణా గణనీయంగా పెరిగింది.
కాష్ మిస్లను నివారించడానికి - కాష్లో లేని డేటాను అభ్యర్థించడం - సరైన సంఖ్యలో CPU క్యాచెస్, క్యాషింగ్ స్ట్రక్చర్స్ మరియు సంబంధిత అల్గోరిథమ్లను కనుగొనడానికి చాలా పరిశోధన సమయం వెచ్చించబడుతుంది. కాషింగ్ స్నూప్ [4] మరియు కాష్ కోహరెన్సీ [3,5] కోసం ప్రోటోకాల్ యొక్క మరింత వివరణాత్మక వివరణ కోసం [8], అలాగే NUMA వెనుక డిజైన్ ఆలోచనలు చూడండి.
NUMA కోసం సాఫ్ట్వేర్ మద్దతు
NUMA ఆర్కిటెక్చర్కు మద్దతు ఇచ్చే సిస్టమ్ పనితీరును మెరుగుపరిచే రెండు సాఫ్ట్వేర్ ఆప్టిమైజేషన్ చర్యలు ఉన్నాయి - ప్రాసెసర్ అనుబంధం మరియు డేటా ప్లేస్మెంట్. [19] లో వివరించినట్లుగా, ప్రాసెసర్ అనుబంధం […] ఒక ప్రక్రియ లేదా ఒక థ్రెడ్ను ఒకే CPU కి బంధించడం మరియు అన్బైండింగ్ చేయడం లేదా CPU ల శ్రేణిని ప్రాసెస్ చేస్తుంది లేదా తద్వారా CPU లేదా CPU లపై కాకుండా ప్రక్రియ లేదా థ్రెడ్ అమలు చేయబడుతుంది. ఏదైనా CPU. డేటా ప్లేస్మెంట్ అనే పదం సాఫ్ట్వేర్ మార్పులను సూచిస్తుంది, దీనిలో కోడ్ మరియు డేటా మెమరీలో సాధ్యమైనంత దగ్గరగా ఉంచబడతాయి.
విభిన్న UNIX మరియు UNIX- సంబంధిత ఆపరేటింగ్ సిస్టమ్లు ఈ క్రింది మార్గాల్లో NUMA కి మద్దతు ఇస్తాయి (దిగువ జాబితా [14] నుండి తీసుకోబడింది):
- సిలికాన్ గ్రాఫిక్స్ IRIX ఆరిజిన్ సర్వర్ సిరీస్తో 1240 CPU కంటే ఎక్కువ ccNUMA ఆర్కిటెక్చర్ కోసం మద్దతు ఇస్తుంది.
- మైక్రోసాఫ్ట్ విండోస్ 7 మరియు విండోస్ సర్వర్ 2008 ఆర్ 2 64 లాజికల్ కోర్లకు పైగా NUMA ఆర్కిటెక్చర్కు మద్దతునిచ్చాయి.
- Linux కెర్నల్ యొక్క వెర్షన్ 2.5 ఇప్పటికే ప్రాథమిక NUMA మద్దతును కలిగి ఉంది, ఇది తదుపరి కెర్నల్ విడుదలలలో మరింత మెరుగుపరచబడింది. లైనక్స్ కెర్నల్ యొక్క వెర్షన్ 3.8 కొత్త కెనెల్ విడుదలలలో మరింత సమర్థవంతమైన NUMA పాలసీలను అభివృద్ధి చేయడానికి అనుమతించే కొత్త NUMA ఫౌండేషన్ను తీసుకువచ్చింది [13]. లైనక్స్ కెర్నల్ యొక్క వెర్షన్ 3.13 అనేక విధానాలను తీసుకువచ్చింది, దాని ప్రక్రియను దాని మెమరీకి దగ్గరగా ఉంచడం, కేసుల నిర్వహణతో పాటు, ప్రక్రియల మధ్య మెమరీ పేజీలను పంచుకోవడం లేదా పారదర్శక భారీ పేజీల వినియోగం వంటివి; కొత్త సిస్టమ్ కంట్రోల్ సెట్టింగ్లు NUMA బ్యాలెన్సింగ్ ఎనేబుల్ లేదా డిసేబుల్ చేయడానికి, అలాగే వివిధ NUMA మెమరీ బ్యాలెన్సింగ్ పారామితుల కాన్ఫిగరేషన్ని అనుమతిస్తుంది [15].
- తార్కిక సమూహాల పరిచయంతో ఒరాకిల్ మరియు ఓపెన్సోలారిస్ మోడల్ NUMA ఆర్కిటెక్చర్ రెండూ.
- FreeBSD వెర్షన్ 11.0 లో ప్రారంభ NUMA అనుబంధాన్ని మరియు పాలసీ కాన్ఫిగరేషన్ను జోడించింది.
కంప్యూటర్ సైన్స్ అండ్ టెక్నాలజీ, ప్రొసీడింగ్స్ ఆఫ్ ఇంటర్నేషనల్ కాన్ఫరెన్స్ (CST2016) పుస్తకంలో నింగ్ కాయ్ సూచించింది, NUMA ఆర్కిటెక్చర్ అధ్యయనం ప్రధానంగా హై-ఎండ్ కంప్యూటింగ్ ఎన్విరాన్మెంట్పై దృష్టి పెట్టింది మరియు పనితీరును ఆప్టిమైజ్ చేసే NUMA- అవేర్డిక్స్ రాడిక్స్ పార్టిషనింగ్ (NaRP). బిజినెస్ ఇంటెలిజెన్స్ అప్లికేషన్లను వేగవంతం చేయడానికి NUMA నోడ్లలో షేర్డ్ కాష్లు. అలాగే, NUMA కొన్ని ప్రాసెసర్లతో భాగస్వామ్య మెమరీ (SMP) సిస్టమ్ల మధ్య మధ్యస్థాన్ని సూచిస్తుంది [6].
NUMA మరియు Linux
పైన చెప్పినట్లుగా, లైనక్స్ కెర్నల్ వెర్షన్ 2.5 నుండి NUMA కి మద్దతు ఇస్తుంది. డెబియన్ GNU/Linux మరియు Ubuntu రెండూ numactl [16] మరియు numad [17] అనే రెండు సాఫ్ట్వేర్ ప్యాకేజీలతో ప్రాసెస్ ఆప్టిమైజేషన్ కోసం NUMA మద్దతును అందిస్తాయి. Numactl కమాండ్ సహాయంతో, మీరు మీ సిస్టమ్లో అందుబాటులో ఉన్న NUMA నోడ్ల జాబితాను జాబితా చేయవచ్చు [18]:
# numactl -హార్డ్వేర్అందుబాటులో:2నోడ్స్(0-1)
నోడ్0cpus:0 1 2 3 4 5 6 7 16 17 18 19 ఇరవై ఇరవై ఒకటి 22 2. 3
నోడ్0పరిమాణం:8157MB
నోడ్0ఉచిత:88MB
నోడ్1cpus:8 9 10 పదకొండు 12 13 14 పదిహేను 24 25 26 27 28 29 30 31
నోడ్1పరిమాణం:8191MB
నోడ్1ఉచిత:5176MB
నోడ్ దూరాలు:
నోడ్0 1
0:10 ఇరవై
1:ఇరవై 10
NumaTop అనేది రన్టైమ్ మెమరీ ప్రాంతాన్ని పర్యవేక్షించడానికి మరియు NUMA సిస్టమ్లలో ప్రక్రియలను విశ్లేషించడానికి ఇంటెల్ అభివృద్ధి చేసిన ఉపయోగకరమైన సాధనం [10,11]. సాధనం సంభావ్య NUMA- సంబంధిత పనితీరు అడ్డంకులను గుర్తించగలదు మరియు అందువల్ల NUMA సిస్టమ్ సామర్థ్యాన్ని పెంచడానికి మెమరీ/CPU కేటాయింపులను తిరిగి సమతుల్యం చేయడానికి సహాయపడుతుంది. మరింత వివరణాత్మక వివరణ కోసం [9] చూడండి.
వినియోగ దృశ్యాలు
NUMA టెక్నాలజీకి మద్దతు ఇచ్చే కంప్యూటర్లు మొత్తం CPU లు మొత్తం మెమరీని నేరుగా యాక్సెస్ చేయడానికి అనుమతిస్తాయి - CPU లు దీనిని ఒకే, సరళ చిరునామా ప్రదేశంగా చూస్తాయి. ఇది 64-బిట్ అడ్రసింగ్ స్కీమ్ని మరింత సమర్థవంతంగా ఉపయోగించుకోవడానికి దారితీస్తుంది, దీని ఫలితంగా డేటా వేగంగా కదులుతుంది, డేటా తక్కువ రెప్లికేషన్ మరియు సులభంగా ప్రోగ్రామింగ్ అవుతుంది.
డేటా మైనింగ్ మరియు డెసిషన్ సపోర్ట్ సిస్టమ్స్ వంటి సర్వర్-సైడ్ అప్లికేషన్లకు NUMA సిస్టమ్లు చాలా ఆకర్షణీయంగా ఉంటాయి. ఇంకా, గేమింగ్ మరియు హై-పెర్ఫార్మెన్స్ సాఫ్ట్వేర్ కోసం అప్లికేషన్లను రాయడం ఈ ఆర్కిటెక్చర్తో చాలా సులభం అవుతుంది.
ముగింపు
ముగింపులో, NUMA ఆర్కిటెక్చర్ స్కేలబిలిటీని పరిష్కరిస్తుంది, ఇది దాని ప్రధాన ప్రయోజనాల్లో ఒకటి. NUMA CPU లో, ఒక నోడ్ అదే నోడ్లో మెమరీని యాక్సెస్ చేయడానికి అధిక బ్యాండ్విడ్త్ లేదా తక్కువ జాప్యతను కలిగి ఉంటుంది (ఉదా., స్థానిక CPU రిమోట్ యాక్సెస్ అదే సమయంలో మెమరీ యాక్సెస్ను అభ్యర్థిస్తుంది; ప్రాధాన్యత స్థానిక CPU కి ఉంటుంది). డేటా నిర్దిష్ట ప్రక్రియలకు (మరియు అందువలన ప్రాసెసర్లు) స్థానీకరించబడితే ఇది మెమరీ నిర్గమాంశను నాటకీయంగా మెరుగుపరుస్తుంది. ప్రతికూలతలు ఒక ప్రాసెసర్ నుండి మరొక ప్రాసెసర్కు డేటాను తరలించడానికి అధిక ఖర్చులు. ఈ కేసు చాలా తరచుగా జరగనంత వరకు, ఒక NUMA వ్యవస్థ మరింత సాంప్రదాయ నిర్మాణంతో వ్యవస్థలను అధిగమిస్తుంది.
లింకులు మరియు సూచనలు
- NVIDIA టెస్లా వర్సెస్ రేడియన్ ఇన్స్టింక్ట్ పోల్చండి, https://www.itcentralstation.com/products/comparisons/nvidia-tesla_vs_radeon-instinct
- NVIDIA DGX-1 వర్సెస్ రేడియన్ ఇన్స్టింక్ట్ పోల్చండి, https://www.itcentralstation.com/products/comparisons/nvidia-dgx-1_vs_radeon-instinct
- కాష్ పొందిక, వికీపీడియా, https://en.wikipedia.org/wiki/Cache_coherence
- బస్ స్నూపింగ్, వికీపీడియా, https://en.wikipedia.org/wiki/Bus_snooping
- మల్టీప్రాసెసర్ సిస్టమ్లలో కాష్ పొందిక ప్రోటోకాల్లు, గీక్స్ కోసం గీక్స్, https://www.geeksforgeeks.org/cache-coherence-protocols-in-multiprocessor-system /
- కంప్యూటర్ సైన్స్ అండ్ టెక్నాలజీ - ప్రొసీడింగ్స్ ఆఫ్ ది ఇంటర్నేషనల్ కాన్ఫరెన్స్ (CST2016), నింగ్ కాయ్ (Ed.), వరల్డ్ సైంటిఫిక్ పబ్లిషింగ్ కో Pte Ltd, ISBN: 9789813146419
- డేనియల్ పి. బోవెట్ మరియు మార్కో సీసాటి: లైనక్స్ కెర్నల్, 3 వ ఎడిషన్, ఓ'రైలీని అర్థం చేసుకోవడంలో NUMA నిర్మాణాన్ని అర్థం చేసుకోవడం, https://www.oreilly.com/library/view/understand-the-linux/0596005652/
- ఫ్రాంక్ డెన్నెమన్: NUMA డీప్ డైవ్ పార్ట్ 1: UMA నుండి NUMA వరకు, https://frankdenneman.nl/2016/07/07/numa-deep-dive-part-1-uma-numa/
- కోలిన్ ఇయాన్ కింగ్: NumaTop: ఒక NUMA సిస్టమ్ పర్యవేక్షణ సాధనం, http://smackerelofopinion.blogspot.com/2015/09/numatop-numa-system-monitoring-tool.html
- Numatop, https://github.com/intel/numatop
- డెబియన్ GNU / Linux కోసం ప్యాకేజీ న్యూమాటాప్, https://packages.debian.org/buster/numatop
- జోనాథన్ కెహయాస్: నాన్-యూనిఫాం మెమరీ యాక్సెస్/ఆర్కిటెక్చర్ల (NUMA) ను అర్థం చేసుకోవడం, https://www.sqlskills.com/blogs/jonathan/understand-non-uniform-memory-accessarchitectures-numa/
- కెర్నల్ 3.8 కోసం లైనక్స్ కెర్నల్ న్యూస్, https://kernelnewbies.org/Linux_3.8
- ఏకరీతి కాని మెమరీ యాక్సెస్ (NUMA), వికీపీడియా, https://en.wikipedia.org/wiki/Non-uniform_memory_access
- లైనక్స్ మెమరీ మేనేజ్మెంట్ డాక్యుమెంటేషన్, NUMA, https://www.kernel.org/doc/html/latest/vm/numa.html
- డెబియన్ GNU/Linux కోసం ప్యాకేజీ numactl, https://packages.debian.org/sid/admin/numactl
- డెబియన్ GNU/Linux కోసం ప్యాకేజీ సంఖ్య https://packages.debian.org/buster/numad
- NUMA కాన్ఫిగరేషన్ ప్రారంభించబడిందా లేదా డిసేబుల్ చేయబడిందో లేదో ఎలా కనుగొనాలి? https://www.thegeekdiary.com/centos-rhel-how-to-find-if-numa-configuration-is-enabled-or-disabled/
- ప్రాసెసర్ అనుబంధం, వికీపీడియా, https://en.wikipedia.org/wiki/Processor_affinity
ధన్యవాదాలు
ఈ కథనాన్ని తయారుచేసేటప్పుడు రచయితలు గెరాల్డ్ రుప్రెచ్ట్ మద్దతు ఇచ్చినందుకు కృతజ్ఞతలు తెలుపుతున్నారు.
రచయితల గురించి
Plaxedes Nehanda అనేది బహుముఖ నైపుణ్యం కలిగిన, స్వీయ-ఆధారిత బహుముఖ వ్యక్తి, అతను అనేక టోపీలను ధరిస్తాడు, వారిలో, ఈవెంట్స్ ప్లానర్, వర్చువల్ అసిస్టెంట్, ట్రాన్స్క్రైబర్, అలాగే దక్షిణాఫ్రికాలోని జోహన్నెస్బర్గ్లో ఉన్న ఆసక్తిగల పరిశోధకుడు.
ప్రిన్స్ కె. నేహాండా జింబాబ్వేలోని హరారేలోని పేఫ్ఫ్లో మీటరింగ్లో ఇన్స్ట్రుమెంటేషన్ అండ్ కంట్రోల్ (మెట్రాలజీ) ఇంజనీర్.
ఫ్రాంక్ హాఫ్మన్ రోడ్డుపై పనిచేస్తున్నారు-ప్రాధాన్యంగా బెర్లిన్ (జర్మనీ), జెనీవా (స్విట్జర్లాండ్), మరియు కేప్ టౌన్ (దక్షిణాఫ్రికా) నుండి-డెవలపర్, ట్రైనర్ మరియు లైనక్స్-యూజర్ మరియు లైనక్స్ మ్యాగజైన్ వంటి మ్యాగజైన్లకు రచయితగా. అతను డెబియన్ ప్యాకేజీ మేనేజ్మెంట్ పుస్తకానికి సహ రచయిత కూడా ( http://www.dpmb.org ).