Om du har något hum om design av multicore-system så skulle du veta att ett kluster med 32 CPUer är snabbare än en cache-koherent maskin med 32 CPUer där varje enskild CPU har samma kapacitet om programmet man kör på systemet lämpar sig för kluster.
Om du skulle bencha ett SAP Hana kluster med 64TB RAM mot en Oracle M7 scale-up server med 64 TB RAM, så är det givet att scale-up servern vinner i Enterprise workloads där det kommuniceras mycket mellan cpuerna. Dessutom kan varje Oracle M7 cpu, göra SQL queries i en hastighet utav 120GB/sec, så det är ytterligare ett skäl till varför Oracle M7 servern skulle vinna SAP Hana. Jag undrar vad en x86 cpu klarar av? Är det 5GB/sec SQL queries? Visst skulle Hana klustret ha mer cpuer, men det är inte det viktigaste när det gäller affärssystem, annars skulle en UV2000 vinna alla Enterprise benchmarks. Dessutom har en M7 server 32 cpuer, 1024 cores och 8192 trådar så den har gott om cpu kraft (och den är immun mot heartbleed och bl.a. buggar när pekare går utanför sitt reserverade minne - varje process har en unik nyckel till sitt reserverade RAM område, och för varje operation så krävs att nyckeln överensstämmer, annars larmar och avbryter M7 cpun). Men det vore konstigt om Oracle inte vann såna här benchmarks, eftersom de servrarna är skapta för just affärssystem. På samma sätt vore det konstigt om inte UV2000 vann beräkningsbenchmarks, eftersom de är skapta för sånt (bl.a har de MPI rätt i hårdvaran).
SPARC M6/M7 verkar ju ska skala till 32-sockets, är kanske där fysiken sätter en gräns för vad som är vettigt om man ska köra laster som behöver relativt mycket kors-sockel trafik. Och det är då även förklaringen till varför SGI begränsar sina UV-system till 32-sockets för denna typ av applikationer.
Fujitsu SPARC M10-4S server skalar till 64 cpuer, men de är inte av typen Niagara, utan av typen SPARC64 cpuer. De påminner om POWER/x86 till uppbyggnaden, men få starka trådar, och Fujitu cpu sitter bl.a i Superdatorer såsom "K". Oracle Niagara SPARC har tidigare fokuserat på through-put, på att få så mycket arbete gjort som möjligt på kortast tid, men med core S4 kommer den också ha starka trådar (den kan växla mellan through-put eller starka trådar, on the fly). SPARC64 är en mer traditionell cpu. Sun hade en server med 144 cpuer för decennier sedan.
Oracle har en interconnect som heter Bixby som skalar upp till 96 cpuer (dvs man slår ihop tre st M6/M7 servrar), men jag tror prestandan blir lidande då, eftersom det kommer bli flera hopp att nå cpuer långt bort. Sen kanske det inte heller är så stor marknad för 96 scale-up servrar, kanske därför Oracle inte börjat sälja en sån server. SPARC M6/M7 har kopplat ihop alla 32 cpuer med varandra på detta sätt:
http://regmedia.co.uk/2013/08/28/oracle_sparc_m6_bixby_interc...
man ser vilket ormbo det blir när cpuer ska kommunicera, tänk då 64 cpuer eller 96 cpuer! Man ser att i värsta fall, så måste man mellanlanda en gång, det blir alltså max ett extra hopp för att nå till en cpu maximalt långt bort, tex att cpu 0 ska nå cpu 31. Att det bara är ett hopp i värsta fall, är extremt bra. Detta leder till att hela M6/M7 servern har låg värsta latens och lämpar sig för t.ex. SAP eller databaser - vilket är naturligt eftersom affärssystem är Oracles levebröd. Om man har 96 cpuer så blir det fler hopp, och då ger det inte längre bra Enterprise prestanda där kod branchar vilt, och kommunicerar hela tiden mellan cpuerna.
Om vi tittar på Bull Bullion, den första 16-cpu x86 Enterprise servern, så ser den ut så här:
https://deinoscloud.files.wordpress.com/2012/10/bullions-bcs....
Man ser att det är inte så bra, det blir flera hopp för att nå cpuer långt bort redan vid lite som 16 cpuer. Prestandan måste bli lidande. För övrigt påstår Bullion att de har
https://deinoscloud.wordpress.com/2012/10/26/bulls-implementa...
In July 2012, the bullion server has been ranked as the world’s fastest x86 enterprise-class server, according to the international SPECint®_rate2006 benchmark.
Jag tror inga stora affärsföretag bryr sig om parallella beräkningsbenchmarks som SPECint. Istället är affärsföretagen mer intresserade utav Enterprise workloads, SAP benchmarks etc. Affärsservrarna är ju där de stora pengarna finns med skyhöga marginaler.
Man ska också påpeka att systemen vi nu diskuterar står för långt mindre än 1% av alla servers som används, kul att diskutera rent tekniskt men i det stora hela är detta ungefär lika relevant som Bugatti Veyron är för bilindustrin. Kul att se på TV, men de flesta kommer aldrig komma nära en sådan i verkligheten.
Precis. Om du har en 4 cpu eller 8 cpu x86 server, så får du otroligt mycket kraft idag. Det räcker för de flesta. Dessutom går de upp till 12TB RAM idag. Vilket är helt otroligt bra. IBMs största Mainframes har ju länge gått upp endast till 4TB. Och IBMs största Unix server POWER8 E880 går upp till 16TB, precis som deras största POWER7 server. En 8 cpu x86 server kan lätt ersätta mindre Unix servrar och mindre Mainframes.
Men är vi överens om att det är skillnad på scale out servrar, och scale up servrar? Ingen kan ersätta den andre. Scale-up kan inte ersätta Scale-out på beräkningar. Och på samma sätt kan inte en Scale-out server ersätta en Scale-up server på monolitisk kod som branchar mycket, typfall är affärssystem. Överens?
http://www.realworldtech.com/sgi-interview/6/
Typically, much of the work in HPC scientific code is done inside loops, whereas commercial applications, such as database or ERP software are far more branch intensive. This makes the memory hierarchy more important, particularly the latency to main memory. Whether Linux can scale well with a ERP workload is an open question. However, there is no doubt that with each passing month, the scalability in such environments will improve. Unfortunately, SGI has no plans to move into this SMP market, at this point in time.
http://www.theregister.co.uk/2011/09/20/scalemp_supports_amd_...
The vSMP hypervisor that glues systems together is not for every workload, but on workloads where there is a lot of message passing between server nodes – financial modeling, supercomputing, data analytics, and similar parallel workloads. Shai Fultheim, the company's founder and chief executive officer, says ScaleMP has over 300 customers now. "We focused on HPC as the low-hanging fruit.
Din egen definition gör en enskild CPU till beräkningskluster.
Det spelar väl ingen roll hur man definierar det, marknadsförarna är inte tekniskt kunniga och gör ofta fel. Om de säger SMP, Numa, kluster, whatever - spelar det roll? Det viktiga är användningsområdena. Microsoft säger ju att Windows är perfekt för den ena krävande miljön efter den andra - men faktum är att ingen kör stora seriösa system på Windows. Marknadsförarna får säga vad de vill om Windows, men vad används den till? Och vad används SGIs servrar till? Jo, HPC beräkningar, enligt de själva. De är alltså hårt nischade, och inga general purpose servrar. Man kan köra vad som helst på en Oracle eller IBM Unix server - både scale-up affärsystem och scale-out beräkningar. Men eftersom de bara skalar till 16 eller 32 cpuer, så är det bättre att välja en riktig scale-out server, som SGI med 256 cpuer. När det gällde kappsegling, som Larry Ellison är en fantast utav, så designades Oracles kappseglingbåt och kördes alla tunga beräkningar på en Oracle SPARC M6 server, så det går att köra beräkningar på scale-up servrar. Men det hade gått mycket snabbare med en SGI klustermed 256 cpuer förstås. Men SGI är inte lämpligt att köra scale-up saker, typ, ERP affärssystem (enligt information från SGI själva).
De stödjer MPI/OpenMP också även om de inte har någon MPI-hårdvara – vilket inte heller de flesta scale-outsystem har.
Det är bara beräkningsservrar som använder MPI, och om man har det i hårdvara som SGI, så är man hårt nischad. Ingen IBM eller Oracle server har sån hårdvara.
Sen tror jag inte det är många särskilt stora SAP-installationer (icke-Hana eftersom där föredras det) som kör Suse överhuvudtaget. Däremot finns det inget hinder för det, men andra lösningar skulle vara mer ekonomiska än en scale-upmaskin. De kör inte Linux på Power 795 i SAP-benchmarks t.ex. Snabbaste Linuxlösningen är en 4P Dell. SGI skulle kanske kunna spöa den, men de gör inte SAP-benchmarks. Men vem bryr sig. SGI kallar sina beräkningskluster distributed memory supercomputers eller kluster och SGI ICE eller InfiniteData och Rackable. Som inte är massiva SMP-system.
SGI gör inte såna ERP benchmarks, därför att deras MPI bestyckade 256 cpu kluster inte är lämpade för sånt:
http://www.realworldtech.com/sgi-interview/6/
Typically, much of the work in HPC scientific code is done inside loops, whereas commercial applications, such as database or ERP software are far more branch intensive. This makes the memory hierarchy more important, particularly the latency to main memory. Whether Linux can scale well with a ERP workload is an open question. However, there is no doubt that with each passing month, the scalability in such environments will improve. Unfortunately, SGI has no plans to move into this SMP market, at this point in time.
Min poäng är att det skillnad på scale-up och scale-out servrar (kalla dem vad du vill). Båda är designade att lösa ett specifikt problem, och ingen kan ersätta den andre. Det är min poäng. När det gäller beräkningar, så är det SGI UV2000 servrar man ska köpa. Eller, ScaleMP. Men jag tror SGI är snabbare, därför att ScaleMP gör det i mjukvara (använder en mjukvaru hypervisor för att slå samman många noder i ett kluster, se länk ovan), som SGI gör i hårdvara. När det gäller ERP affärssystem så är det IBM eller Oracle man ska köpa för bästa prestanda. En SGI UV2000 kan inte ERP affärssystem, enligt information från SGI, och frånvaron av SAP eller TPC benchmarks.