Articole interesante din presă sau de pe bloguri

Ai uitat de cuvantul "Remote" si in aia consta toata noutatea. Si ignori partea de configurare si de securitate, care e un cosmar.
 
Citește mai atent, e vorba de remote DMA.

DMA permite copierea de zone de memorie (memory to memory) fără intervenția CPU-ului. Ce înseamnă asta (din câte îmi aduc aminte):

Aplicația X1 de pe PC1 vrea să trimită un bloc de 8KB aplicației X2 de pe PC2. Ce se întâmplă, în mare:
- aplicația X1 are datele într-o zonă de memorie (a aplicației)
- aplicația apelează o funcție care zice kernel-ului: "trimite-mi blocul ăsta la X2"
- se copiază blocul din zona de memorie a aplicației în zona de memorie a kernel-ului (adică stă kernel-ul să copieze memorie)
- kernel-ul trimite NIC-ului comanda de transfer
- NIC-ul ia (prin DMA) datele din RAM și le trimite pe țeavă (împachetate, adresate, etc)
- pe PC2: NIC-ul ia de pe țeavă și trimite (prin DMA) în RAM (kernel)
- NIC-ul trimite kernel-ului un semnal că-s date de măcinat
- kernel-ul copiază datele din memoria kernel și le trimite aplicației
- aplicația X2 are, în sfârșit*, blocul de date

* în sfârșit = uzual când e nevoie de mai mult de-atât ai peste 10Gbit între PC-uri și începe să conteaze al naibii de mult latența.

Ideea RDMA: hai să dăm acces direct NIC-ului la memoria aplicației, fără să mai trecem prin kernel memory. Același transfer de mai sus devine:
- aplicația X1 are datele într-o zonă de memorie M1 (a aplicației)
- aplicația apelează o funcție care zice kernel-ului: "trimite-mi blocul ăsta la X2"
- kernel-ul zice NIC-ului "ia din adresa M1 a aplicației X1 și trimite la adresa M2 a aplicației X2 de pe PC2"
- NIC-ul PC1 ia datele direct din RAM-ul aplicației și le trimite pe țeavă (împachetate, adresate diferit - ideea de port TCP nu prea mai are rost)
- NIC-ul PC2 ia datele de pe țeavă și le injectează direct în memoria aplicației X2
- NIC-ul anunță kernel-ul că s-au copiat datele
- kernel-ul anunță aplicația că are date noi în memorie

Ideea e excelentă, scapi de multe call-ul de CPU and stuff, și mai ales de copieri prin CPU, care bușesc cache-ul (de când cu tone de core-uri per CPU s-a trecut la cache-uri cât mai mari, ca să aibă ce lucra core-urile, însă asta înseamnă și că un context switching "costă" mult, nu doar ciclii de CPU cât se execută copierea ci și faptul că s-a murdărit cache-ul cu prostii). În zona asta de aplicații întâlnești idei de tipul "hai să aliniem datele la adrese în memorie astfel încât să fie aduse toate într-un singur transfer".

Problema e că dai acces remote și direct la memorie, ceea ce înseamnă că ești aproximativ în fundu' gol, pentru că nu mai trec datele prin aceleași filtre ca înainte (ideea de antivirus sau stateful firewall nu mai există în acest mod).

LE: Cred că ideea de coșmar la configurare de care zice Adi e reprezentată cel mai bine de figura 4 de aici:

over_ip.gif

linia din stânga (sockets->TCP) e un transfer "normal", stack-ul din dreapta e o implementare RDMA :smile:.
 
Last edited:
Observ o problema in explicatiile date: transferul datelor de la placa de retea catre memorie se face in primul caz intr-un buffer alocat de driver, iar in al doilea caz, in memoria aplicatiei. Intrucat DMA-ul nu este limitat la o anumita parte a memoriei dpdv. hardware (exceptii minore in primul MB), totul pare o chestiune de software.

Deci de unde atata intarziere si tam-tam necuvenit?
 
Adresarea remote a memoriei unei aplicații chiar e importantă, și e o modificare majoră, care implică atât modificarea kernel-ului cât și a aplicațiilor. Ce n-ai înțeles probabil e că modificarea nu e hardware și n-are legătură cu DMA-ul pe care îl înțelegi tu.
 
Ca sa copiezi efectiv prin R-DMA trebuie sa stii exact de unde copiezi, unde copiezi (nu doar IP-ul computerului pe care copiezi, ci si adresa fizica la care sa copiezi), sa faci transferul fara ca destinatia sa stie ca il faci, apoi sa ii spui ce ai facut. Si asta intr--un sistem de operare care face management la memorie, drept pentru care nu se asteapta ca altcineva sa umble in acea zona de memorie direct (implicatii: cache invalid, securitate). E ca si cum mi-ai permite mie sa iti umblu in contul bancar direct, fara sa te anunt, eu sa fac operatii acolo de care tu habar nu ai si eventual, daca vreau (daca aplicatia e scrisa corect), sa te anunt. Tu nu stii nimic, nici daca fac operatiuni pe cont, nici cand, nici suma, absolut nimic, dar e contul tau si trebuie sa te descurci asa. La un OS memoria e un lucru la fel de sensibil, exista si inainte notiunea de shared memory dar nu la acest mod.
 
"IBM really does not know how to do reorganizations, which are mostly political realignments. They come up with these ideas of how to group people. They make a big deal about it. Then for years the new organization figures out what it’s actually supposed to be doing, how it’s supposed to be done, and they spend a lot of time fixing problems caused by the reorganization." - asta e povestea oricarei reorganizari din orice companie de marimea asta; am trecut de vreo 3 ori prin asa ceva si istoria a fost identica, cam pe vremea cand ne prinsesem cum merg lucrurile si, mai ales, cum nu merg, schimbam organizarea in speranta ca urmatoarea va fi mai buna. Toate ar fi fost bune daca ar fi fost facute (planificate si implementate) corect.
 
Merită și comentariile de pe blog pentru o perspectivă mai bună a companiei de la foști angajați. E și o carte despre căderea IBM-ului ca urmare a culturii dezastruoase și consecvența în a lua decizii tâmpite. Credeam că Yahoo e sinonim cu achiziționat companii de succes pentru ca apoi să fie birocratizate și înglodate în procedurile arhaice ale unui mamut până când oamenii pleacă și produsul moare, da' IBM mi-a demonstrat că se poate mult mai mult :biggrin:
 
Credeam că Yahoo e sinonim cu achiziționat companii de succes pentru ca apoi să fie birocratizate și înglodate ...
E lipsa de viziune a managerilor de top din multe companii americane si deconectarea lor de la restul companiei. Chiar daca vin cu o idee buna nu e nimeni sub ei capabil sa o implementeze, e scindarea intre "star CEO" si "regular Joe the farmer" ajuns VP sau director in 30 de ani de dat cu sapa prin companie.
 
Managerii aia nu au de multe ori de-a face cu business-ul, au doar niste obiective de atins ca sa-si incaseze bonusurile anuale. Cam ca politicienii.
 
Corect. E mult prea dinamică lumea de azi (nu neapărat în sensul bun) și puțini sunt cei ce pot ține pasul cu vremurile. În special printre capi, indiferent de domeniu. Politicienii sunt primii care au intrat în faliment, încă din anii '80-'90. Iar plebei i s-a urcat democrația la cap, cu mici/mari excepții. Vezi China, unde treaba încă merge. Dacă le exportă nițică democrație, adio lucruri ieftine la 38.000 lei...
 
Last edited:
Asta reiese din comentarii, că managementul este de-a dreptul inept și, ca să pară ocupat, doar mătrășește schema organizațională despre cum ar trebui să fie restructurate echipele ca să performeze. Piramida ierarhică e grotesc de încărcată și, de fapt, chiar dacă vrei, oricum nu prea ai ce schimbare să aduci din ea. Între timp vând promisiuni frumoase, apoi dau oameni afară că nu le iese totalul, apoi nu pot livra, apoi pierd clienți, și tot așa.

Îmi amintește de două lucruri: 1) de HP, și 2) de bancul ăla cu o firmă mică cu un angajat pălmaș căruia i se cerea să mute munții din loc, pentru care patronul a mai angajat un team leader ca să-l motiveze, un manager de proiect ca să implementeze strategic viziunea călărindu-l și el zilnic pe angajat, și un consultant care să afle de ce merge afacerea prost și care a concluzionat că pălmașul nu livrează pe cât i se cere, așa că patronul a dat pălmașul afară și apoi bonusuri la management pentru eliminarea punctului slab din companie.
 
Am mai scris pe aici despre modul în care IBM vindea rețelistică. Parcă am mai scris și de asta, dar nu mai găsesc: Acum câțiva ani aveau un proiect care promitea, cu tot cu chip in-house care, după specificații, ar fi trebuit să radă cam tot ce era pe piață. Doar că după ceva timp s-au gândit că cheltuie cam mult cu design-ul chip-ului, și că ar fi bine să dea afară bottom 10% din cei care lucrau la chip. Cum identificarea e subiectivă, și cum nu poți să știi când îți vine rândul, imediat după ce i-au dat pe ăia afară s-au trezit că 60% din echipă își dă demisia. Și cum n-ai cum să găsești dintr-o dată o echipă mare de chip designers care să ia munca altora de la jumătate și s-o termine în timp util, s-a închis proiectul cu totul: chip design, prototipare, OS development, etc. De-aia a trebuit să dea bani altora să scape de divizie. Dacă și-n rest e la fel, mi se pare normal.

Ah, și se pare că Cringely nu e chiar așa informat precum pare: http://www.cbc.ca/news/business/ibm-says-several-thousand-layoffs-on-the-way-1.2931612
 
Last edited by a moderator:
Poi mno, doar IBM n-o să dea imediat pe goarnă confirmarea; doar și PR-ul trebuie să-și câștige o pâine.
 
Back
Top