Jeff Dean'in efsanevi hayatı: Süper mühendisler Google'ı kurtarıyor

Kaynak AI Frontline

Pek çok kişinin gözünde Jeff Dean, Google'ın teknolojisiyle eş anlamlıdır ve Google'ın bu kadar güçlü olmasının önemli bir nedenidir. Ama aslında hepsi Jeff Dean'in arkasındaki başka bir teknik tanrıyı gözden kaçırdılar. Google'ın yeni nesilden devlere doğru büyüme sürecinde katkıya sayısız mühendis katıldı. Bunların arasında Jeff Dean ve Sanjay Ghemawat 11. Seviyeye ulaşan tek süper mühendis (Google Kıdemli Üyesi). İkisi hala çok yakın arkadaş. Aynı bilgisayarda kodlama yapan iyi arkadaşlar olarak Jeff Dean ve Sanjay Ghemawat, Google'ın ve tüm İnternet'in geliştirme yönünü değiştirdi. Bazı insanlar şaka yollu onlara bilgisayar dünyasındaki en iyi ikili programlama örneği diyorlar. Bu makale, The New Yorker dergisi tarafından Jeff Dean ve "iyi arkadaşı" Sanjay Ghemawat için yazılmış özel bir makaledir. Makale, AI Frontline tarafından derlenmiştir. İki süper tanrının heyecan verici hayatını birlikte keşfedelim!

Mart 2000'de bir gün, Google'ın en iyi altı mühendisi geçici bir "operasyonel komuta odasında" toplandı. O sırada, Google benzeri görülmemiş bir acil durumla karşı karşıyaydı.

Geçen yılın Ekim ayında, Google'ın bir web içeriği dizini oluşturmak için Web'i taramaya yönelik temel sistemi çalışmayı durdurduğunu duyurdu. Kullanıcılar sonuçları google.com web sitesi üzerinden sorgulamaya devam edebilseler de, aldıkları sonuçlar aslında beş ay güncel değil.

Ortaya çıkan çıkar çatışması mühendislerin hayal gücünün çok ötesindedir.

Google'ın kurucu ortakları Larry Page ve Sergey Brin, Yahoo'nun arama motoruna destek sağlamak için Yahoo ile bir anlaşma müzakere ediyorlardı ve iki kodaman, o sırada Google'ın indeksinin gerçek ölçeğinden on kat daha büyük bir endeks ölçeği sözü verdi. -Bu, World Wide Web'in içeriğindeki değişiklikleri herhangi bir zamanda takip edebilen bir dizi bütünsel dizin olacaktır. O zamanlar internetin büyüklüğü bir yılda ikiye katlandı.

Bu nedenle, onarım başarısız olduğunda, google.com beş ay önce kalmaya devam edecek ve Yahoo ile yapılan işlem de bundan dolayı başarısız olabilir - Google'ın bu müzakereye yatırdığı her şey boşuna olacaktır.

Google'ın Gemini'sini kurtarın

Bu basamaklı konferans salonunda, mühendisler kapı panellerini ahşap rafa yerleştirerek basit bir masa oluşturdular ve bilgisayarı kurup çalışmaya başladılar. O zamanlar 27 yaşındaki Craig Silverstein uzakta oturuyordu, kısa boyluydu ama yüksek bir sesi vardı. Silverstein, Google'ın ilk çalışanıydı: Brin'in oturma odasını ofis olarak kullandığı ve acemiler kodun çoğunu yeniden yazdığı için Google'a katılmıştı.

Dört gün dört gece sıkı çalışmanın ardından, o ve Bogdan Cocosel adlı başka bir Romen sistem mühendisi çaresiz hissettiler. Silverstein, "Yaptığımız herhangi bir analiz anlamsızdı. Her şey ters gitti ama sebebini bulamadık."

Silverstein, solunda sessizce arkasında oturan 33 yaşındaki MIT mezunu Sanjay Ghemawat'ı neredeyse tamamen görmezden geldi. Kalın kaşları ve siyah saçlı olan mühendis, Google'a birkaç ay önce katıldı (Aralık 1999). Şirkete katılan Digital Equipment Corporation'ın (D.E.C) bir meslektaşı olan 31 yaşındaki Jeff Dean'e katıldı. Jeff, Sanjay'den on ay önce D.E.C'den ayrıldı. İki kişi arasındaki ilişki her zaman çok iyiydi ve ikili çalışma şeklinden gerçekten keyif alıyorlar.

Jeff, savaş odasında sandalyeyi Sanjay'in masasına taşıdı. Sanjay klavyede yazı yazarken, Jeff bir prodüktörün kulaklıkla haber sunucusuna fısıldadığı gibi, yana doğru izledi ve zaman zaman değişiklik önerilerinde bulundu.

Jeff ve Sanjay, hiçbir sonucu olmayan bu indeks problemini incelemeye başladı. Bazı kelimelerin eksik olduğunu buldular - "posta kutusu" kelimesini aramaya çalıştılar, ancak hiçbir sonuç alınamadı ve diğer bazı kelimelerin hatalı olduğunu buldular. Birkaç gündür kodda problemler arıyorlar ve kodun mantığını kontrol ediyorlar. Ancak çökmekte olan şey, tüm kodun her parçasının kapsamlı bir incelemesinin ardından, hala herhangi bir hata bulamamalarıdır.

Programcılar bazen yazılım konseptlerini, genellikle en üst düzey kullanıcı arayüzünden başlayarak ve giderek daha temel bir düzeye inerek hiyerarşik bir yapıya dönüştürürler. Yapının alt kısmında, kısıtlamasız kod dizisinin elektrik ve silikondan oluşan fiziksel dünyaya dönmeye başladığı yazılım ile donanım arasında geçiş yapısı bulunmaktadır.

Savaş odasında geçirilen beşinci günde, Jeff ve Sanjay sorunun mantıksal düzeyde değil, fiziksel kategoride olduğundan şüphelenmeye başladı. Dağınık dizin dosyasını en ilkel temsile dönüştürdüler: ikili koda. Daha spesifik olarak, makinenin ne gördüğünü anlamak istiyorlar.

Sanjay'in ekranında her satır bir indeks terimini temsil eden bir dizi kalın 0'lar ve 1'ler belirdi. Sanjay, 0 olması gereken rakamlardan birinin 1 olarak görüntülendiğini keşfetti. Sonra, Jeff ve Sanjay tüm yanlış sıralanan kelimeleri bir araya getirdiler ve ortak bir kalıp buldular - her kelimenin aynı sorunu var. Makinelerindeki bellek yongası arızalı.

Sanjay yardım edemedi ama gözünü Jeff'e dikti. Google aylardır çeşitli ve artan donanım arızaları yaşıyor. Sorun şu ki, Google'ın işinin hızla gelişmesiyle bilgi işlem altyapısı da genişliyor. Bilgisayar donanımı arızası olasılığı genellikle çok düşüktür, bu nedenle sorunlar biriktiğinde, hemen yıkıcı bir etkiye sahiptirler. Aşınmış teller, hasarlı diskler ve anakartın aşırı ısınması. Oldukça az sayıda cihaz hiç başarılı bir şekilde başlayamaz ve bazıları bir şekilde yavaşladı.

Aynı zamanda, beklenmedik çevresel faktörler de dikkate alınmalıdır - bir süpernova patladığında, patlama dalgası her yöne doğru dağılmış yüksek enerjili parçacıklar üretecektir. Bilim adamları, kozmik ışınlar adı verilen parçacıklardan birinin yeryüzündeki bilgisayar çipine çarpıp hasara yol açma, yani hedefin 0'dan 1'e dönmesine neden olma şansının çok düşük olduğuna inanıyor. Bu nedenle, NASA ve büyük finans şirketleri gibi ağır kurumlar tarafından kullanılan güçlü bilgisayar sistemleri, tek bit durum geçişi hata toleransına sahip özel donanım kullanacaktır. Ancak şu anda, Google hala başlangıç iş modelini benimsedi, yani bu yeteneğe sahip olmayan çok sayıda düşük maliyetli bilgisayar ekipmanı satın aldı. Ve gerçekler, Google'ın bu zamana kadar bir gelişim noktasını başlattığını kanıtladı - bilgi işlem kümesi aşırı derecede büyüdü, bu nedenle donanım arızası kaçınılmaz bir olay haline geldi.

Önümüzdeki birkaç gün içinde Jeff ve Sanjay, arızalı makineyi onarmak için kod yazmak için çok çalıştı. Yeni indeks hızla oluşturuldu ve savaş odası resmen dağıtıldı. Ancak bu sırada Silverstein düşüncede kayboldu. Mükemmel bir hata ayıklayıcıdır ve hataları bulmanın anahtarının sorunun kaynağını belirlemek olduğunu bilir. Bu bağlamda, Jeff ve Sanjay açıkça daha iyi durumda.

Mart 2000'deki dizinin çökmesinden önce, Google'ın sistemi kurucusu tarafından Stanford Üniversitesi'nin lisansüstü okulunda yazılan koda dayanıyordu. Page ve Brin profesyonel yazılım mühendisleri değiller, sadece akademi tarafından arama teknolojisi üzerine deneysel araştırmacılar. Bu nedenle, web tarama programları çöktüğünde, sistem herhangi bir anlamlı teşhis bilgisi vermeyecek, ekranda yalnızca "Whoa, horsey!" Görüntülenecektir. Google'ın deneyimli çalışanları, Page ve Brin BugFiles tarafından yazılan BigFiles yazılımını aradı ve çok sayıda hatayla dolu olduğu şakasını yaptı. O sırada, Google'ın en önemli indeksleme kodunun tamamlanması birkaç gün sürdü ve bir sorunla karşılaşılırsa, baştan yeniden başlatılması gerekiyordu. Silikon Vadisi'ndeki yaygın açıklamaya göre, Google'ın sistemi "ölçeklenebilirliğe" sahip değil.

Hepimiz "web'de ara" veya "web'de ara" terimini kullanıyoruz, ancak aslında bu ifade doğru değil. Aslında, arama motorumuz Web'in dizinini veya haritasını tarar. BackRub 1996'da hala kullanımdayken, Google'ın dizin haritası, Page'in yurdundaki kişisel bir bilgisayara yüklenebilecek kadar küçüktü. Ancak, Mart 2000'de ölçeği herhangi bir süper bilgisayarın işlem gücünü aştı.

Bu kadar hızlı gelişmeye ayak uydurmak için Google'ın tek yolu, tüketici sınıfı ekipman satın almak ve bir küme oluşturmaktır. Tüketici ekipmanının maliyetinin yarısı, disket sürücüleri ve metal kasalar dahil olmak üzere Google için anlamsız "önemsiz" olduğundan, doğrudan anakart ve disk sipariş etmeye ve bunları bağlamaya karar verdiler. Google, Santa Clara, California'daki bir binada bu cihazlardan 1.500 tanesini altı fit yüksekliğe kadar istifledi; ancak bir donanım arızası nedeniyle bu cihazlardan yalnızca 1.200'ü düzgün çalışıyordu. Ayrıca rastgele arızalar bu sistemi sürekli yok ediyor. İş operasyonlarını sürdürmek için Google'ın bu bilgisayarları sorunsuz ve esnek bir bütün halinde inşa etmesi gerekir.

Bu işle karşı karşıya kalan Jeff ve Sanjay bir kez daha el ele verdi.

Apple için çalışan ve Macintosh bilgisayarların geliştirilmesine katılan Wayne Rosing, Kasım 2000'de Google'a katıldı ve 100 kişilik mühendislik ekibini yönetmekten sorumlu. "Bu ikisi gerçek liderler" diye hatırladı. Haftada 90 saat çalışıyorlar, kod yazıyorlar , Genel sistemi etkilemeden tek bir disk sürücüsünün olası arızasını çözmeyi umuyoruz. Web tarama işlemi sırasında kontrol noktaları eklediler, böylece tüm işlem yarıda yeniden başlatılabilir. Yeni kodlama ve sıkıştırma şemaları geliştirerek, sistem kapasitesini iki katına çıkardılar. Ayrıca ödün vermeyen optimize edicilerdir.

Bir araba dönerken, lastiğin dışı kaçınılmaz olarak yere daha fazla değecektir; Aynısı disk sürücüsü için de geçerlidir, dış kenarın hareket hızı çalışma sırasında iç kenardan daha yüksektir. Google, okuma kafasının yürütme hızını artırmak için en sık erişilen verileri dış kenara taşıdı. Ancak bu durumda, depolama diskinin içi genellikle boş bırakılır. Jeff ve Sanjay, bu alanı genel arama sorguları için önceden işlenmiş verileri depolamak için kullandı.

2001 yılına gelindiğinde, Google indekslemenin nispeten yavaş disk depolaması yerine hızlı rastgele erişimli belleği kullanması gerektiğini kanıtlamak için dört gün harcadılar - Google'ın ekonomi felsefesini altüst eden bir keşif. Page ve Brin çok net, Anında yanıtlar sağlayabilen hizmetler kullanıcılar tarafından sıcak bir şekilde karşılanacaktır, ancak sorun şu ki, böyle bir hız seviyesi, güçlü bilgi işlem gücü desteği gerektiriyor ve bilgi işlem gücü maliyete mal oluyor. Böyle bir ikilemle karşı karşıya kalan Jeff ve Sanjay, sorunu çözmek için yazılım kullandı. .

Rosing'in 2005'te ayrılmasının ardından Alan Eustace, Google'ın mühendislik ekibinin başına geçti. Eustace, "Temel çelişki, ölçek sorununu çözebilmek için en küçük ayrıntıları anlamamız gerektiğidir." Jeff ve Sanjay bilgisayarların çalışma prensiplerine çok aşinadır ve bit düzeyinde düşünebilirler. Jeff bir keresinde "Her Programcının Bilmesi Gereken Gecikme Sayıları" nın bir listesini derlemişti. Adı "Her programcının bilmesi gerekir" olsa da, çoğu uygulayıcı aslında bu sayılar konusunda çok yenidir Örneğin, birinci düzey önbellek referansı genellikle yarım nanosaniye veya bellekten sırayla 1 MB okumak, vb. Yaklaşık 250 mikro saniye sürer. Ama bu rakamlar doğrudan Jeff ve Sanjay'in beynine yakıldı. . Google'ın çekirdek yazılımını birden çok yeniden yazmalarıyla, sistemin kapasitesi yeni bir düzeye yükseltildi. Aynı zamanda, Google'ın devasa veri merkezinde teknisyenler, yazılım tarafından oluşturulan talimatlara göre disk sürücülerini, güç kaynaklarını ve bellek çubuklarını değiştirerek planlanmamış çalışma yollarını da izlemeye başladılar. Bu şekilde, bileşenler aşınmaya devam etse ve hatta çıkarılması gerekse bile, genel sistem yine de gelişebilir.

Günümüzün Google mühendisleri, 1. seviyeden başlayarak devasa bir varoluş zincirinde. En düşük seviye 1, BT teknik destek personelini temsil eder, 2. seviye üniversite birinci sınıftır ve 3. seviye genellikle yüksek lisans derecesine sahip personeldir. 4. seviyeye ulaşmak genellikle birkaç yıllık uygulama veya doktora gerektirir. Çoğu çalışanın kariyer gelişimi 5. seviyede kalır. 6. Seviye, Google'ın olağanüstü yeteneklerinin ilk% 10'unu temsil eden bir mühendisdir. Teknik yetenekleri, projenin başarısını veya başarısızlığını doğrudan belirler. Seviye 7, uzun vadeli pratik deneyime sahip seviye 6 mühendisleri temsil eder. Seviye 8 baş mühendistir ve çalışmaları büyük ürünler ve altyapı ile yakından ilgilidir. Seviye 9, büyük ölçüde saygın bir isim haline gelen olağanüstü bir mühendis. 10. sınıf, ömür boyu sürecek bir onur unvanı olan bir Google akademisyenini temsil eder. Google akademisyeni, dünya alanında tartışmasız liderdir, Jeff ve Sanjay, kıdemli Google akademisyenleridir; şirket aynı zamanda ilk başta 11 düzeydeki tek çalışandı .

En iyi ortak, en iyi ikili programlama rol modeli

Google'daki bu en iyi iki programcı, aynı beynin iki yarım küresi gibidir.

Google Park, Mountain View şehir merkezine sadece birkaç dakika uzaklıkta karayolu üzerinde yer almaktadır. Karanlık pencerelerle kaplı birkaç dikkat çekici bina vardır. Geçen yaz bir gün, sabah programlarını birlikte bitirdikten sonra, Jeff ve Sanjay, Big Table adlı kampüs kafeteryasında öğle yemeği yediler. Aslında, restoranın adı 2005 yılında geliştirilmesine yardımcı oldukları sistemden geliyor - bu sistem sayısız bilgisayarı bir veritabanı olarak işlemekten sorumludur. Sanjay uzun boylu ve zayıf, retro koyu kahverengi bir ceket, gri pantolon ve bir çift dar gözlük takıyor. Açık havada bir yemek masasına baktı, hızlı bir şekilde yürüdü, şemsiyeyi kaldırıp gölgeye oturdu. Tabii diğer sandalyeyi güneşin altında hareket ettirmeyi de unutmadı. Yalnızca bir dakika sonra, kısa kollu bir gömlek ve şık spor ayakkabılarıyla Jeff geldi.

Eski bir karı koca gibi, Jeff ve Sanjay her biri hafızalarındaki ayrıntıları anlattılar ve kişisel olarak katıldıkları ilk projeleri gözden geçirdiler.

Sanjay, "O zamanlar hala el yazısı kodları yazıyorduk" dedi. Gözlükleri güneşte otomatik olarak renk değiştirdi. "Ayrıca," Oh, geçen ay yazdıklarımıza benziyor gibi görünen kod yeniden yazma da yapıyoruz. "

Jeff ekledi: "Ya da, sadece dizin verileri biraz farklı."

Sanjay sohbeti ele aldı: "Peki, ne kadar fark var? Çözmemiz gereken şey bu -"

Jeff tekrar devam etti: "Temel soru."

Sanjay nihayet, "İşimizin normal şekli budur" diye bitirdi.

Jeff elindeki pizzadan bir ısırık aldı. Sert parmakları, belirgin eklemleri ve sert cildi var. Öte yandan, Sanjay taban tabana zıt bir zarafet duygusuna sahip gibi görünüyor ... Böyle iki insanın yakın arkadaş olduklarını hayal etmek gerçekten zor. Sanjay, "Birlikte çalışmaya nasıl karar verdiğimi bilmiyorum" dedi.

Jeff, "Ancak Google'a katılmadan önce ortağdık" dedi.

Sanjay: "Ama neden aynı bilgisayarın önünde birlikte düşünmenin ayrı hareket etmekten daha iyi olduğunu düşündüğümüzü bilmiyorum."

Jeff, "İki blok yürümeyi ya da D.E.C araştırma laboratuvarımdan laboratuvarına koşmayı tercih ederim. İki laboratuvar arasında bir dondurma dükkanı var." Dedi.

Sanjay mutlu bir şekilde bağırdı, "Öyleyse, alışkanlığımızı oluşturan dondurma dükkanı olmalı."

Sanjay hiç evlenmedi, ancak sık sık Jeff'in kendisi, karısı Heidi ve iki kızıyla tatil yapıyor. Jeff'in kızları ona Sanjay Amca diyecek ve beşi sık sık Cuma günleri akşam yemeğinde buluşuyor. Sanjay ve Jeff'in en büyük kızı Victoria'nın çok iyi bir ilişkisi var. Sanjay gururla ifade etti, "Kızının büyümesini izledim." Google 2004'te halka açıldıktan sonra, aralarındaki dört mil uzakta yeni bir konuta taşındılar. Sanjay, Mountain View'in Eski Kent'inde olağanüstü üç yatak odalı bir evde yaşıyor ve Jeff, Palo Alto'da kendi evini tasarladı ve bodrum katına bir trambolin kurdu. Evi tasarlarken, bu çalışmayı çok sevmesine rağmen, Sanjay'in inşası hakkında pek çok ayrıntılı görüşü dinleyecek sabrı olmadığını fark etti: ana kirişler, cıvatalar ve yük taşıyıcılar gibi büyük miktarda ayrıntılı bilgi Jeff'in makro vizyonunu tamamen yok ederdi. .

Eşli programlama için Sanjay şunları söyledi: "Çoğu insanın bunu yapmak için neden isteksiz olduğunu tam olarak anlamıyorum."

Jeff, "Düşünme tarzınızla uyumlu birini bulmanız gerekiyor, böylece iki kişi birlikte tamamlayıcı güçler oluşturabilir."

Masadan kalktılar ve Big Table restoranında sırf lezzetli dondurma bulmak için Google çalışanları arasında gidip geldiler. Jeff bu iki kişiden arzusunu daha fazla dile getirerek dondurma deneyimini yürürken paylaştı. "Dondurma toplamaktan sorumluyum. Sanırım bir itme ve bir öneri dondurmanın külahın üzerinde sağlam durmasını sağlayacak." Sanjay buna katıldı. Çikolata ve vanilya aromalı karışık dondurmayı Jeff'in tatlılığına mutlulukla bastırdı. silindir.

Herkesin ilhamın kuruduğu bir zamanı vardır, ancak aynı anda iki kişinin başı nadiren belaya girer. Geçtiğimiz 35 yıl boyunca, Fizyoloji veya Tıp alanında Nobel Ödüllerinin yaklaşık yarısı bu tür bilimsel ortaklara verildi.

Yıllarca birlikte çalışıp yaşadıktan sonra, iki kişi, tıpkı bir çift ikiz gibi özel bir iletişim dili bile geliştirdiler. Birbirlerinin kıyafetlerini ve alışkanlıklarını taklit edecekler, birbirlerinin mizah tarzlarını paylaşacaklar ve ortak inançlar inşa edecekler. Ancak, yazılım geliştirmede bu derece işbirliği aslında çok nadirdir. Geliştiriciler bazen "eşli programlama" hakkında konuşsalar da, yani iki programcı aynı bilgisayarı paylaşıyor, biri "sürüşten" ve diğeri "navigasyondan" sorumlu - ancak Jeff ve Sanjay arasındaki ortaklık bundan çok daha yakın. birçok. Sıradan programcılar arasındaki arkadaşlık işbirlikçi pilotlarınkine benziyorsa, Jeff ve Sanjay daha çok aynı beynin iki yarım küresi gibidir. Yayınladıkları ünlü makalelerin çoğu ortak imzalandı. Yöneticilerinden biri olan Bill Coughran, "Çok üretkenler ve çok verimli çalışıyorlar. Genellikle onlara odaklanan ekipler kuruyoruz."

1966'da System Development Corporation'daki araştırmacılar, en iyi programcıların en kötü programcılardan on kat daha üretken olma eğiliminde olduklarını keşfettiler. O zamandan beri böyle bir "10x (on kat verimlilik) programcısı" olup olmadığı tartışmalı bir konu oldu. Kolektif bir biçimde yürütülmesi gereken büyük yazılım projeleriyle karşı karşıya kalan bu düşünce, açıkça bireysel üyelerin önemini vurgulamaktadır. Programlama alanında, birkaç başarı tek başına kalabilir. Ama öyle olsa bile, ironik bir şekilde, Birçok programcı, Jeff ve Sanjay tarafından yapılan çalışmayı 10x programcının var olduğunun kesin kanıtı olarak görüyor. .

Jeff, Temmuz 1968'de Hawaii'de doğdu. Babası Andy, tropikal hastalıklar alanında bir araştırmacı ve annesi Virginia Lee, altı dil konuşan bir tıbbi antropolog. İlgi duymadan, baba ve oğul bir IMSAI 8080 bilgisayarı programlamayı araştırdı. Yükseltme programını makineye kaynakladılar ve ekipmanın her parçasını derinlemesine inceledi.

Jeff ve ailesi sık sık taşınır. On üç yaşında, sekizinci sınıfı programın ilerisinde bitirdi ve ailesiyle birlikte Batı Somali'deki bir mülteci kampına geldi. Daha sonra lisedeyken epidemiyologlar için Epi Info adlı bir veri toplama programı yazmaya başladı; bu sonuç sonunda saha çalışması için standart bir araç haline geldi ve bir düzineden fazla dilde sürümler yayınladı ve verileri yayınladı. Yüz bin kopya.

Jeff daha sonra, hayatını programlama ile henüz yakından ilişkilendirmemiş olan eşi Heidi ile Minnesota Üniversitesi'nde tanıştı. "Bu başarılarla övünmedi. Onu anlatmaya başlamak için ona yol göstermenin yollarını bulmalısın." Diye hatırladı. İkisinin ilk randevusu birlikte bir kadın basketbol maçını izlemekti. O gün Jeff bir amigo gibi giyinmişti. Bir sincap maskotu yarattı.

Jeff'in doktora çalışmaları, insanlar tarafından yazılan kodu bilgisayarlar için optimize edilmiş makine dili talimatlarına dönüştüren bir yazılım olan derleyiciler üzerine odaklandı. Allan Eustace, "Eğer eğlenceyle başlarsanız, derleyicinin kendisi çok sıkıcıdır." Ancak diğer yandan, bu çalışma insanların "makineye daha yakın olmalarını" sağlar. Jeff hakkında konuşurken, Sanjay işaret parmağını şakağına bastırmaya devam etti. "Kod yazarken bir dizi model düzenleyecek." Bu kodların performansı nasıl? "Diye hatırlatacak. Hemen hemen tüm olası durumları yarı otomatik bir şekilde değerlendirebilir. "

Sanjay, 17 yaşında Cornell Üniversitesi'ne girmeden önce hiçbir bilgisayara dokunmamıştı. 1966'da Indiana, West Lafayette'de doğdu, ancak kuzey Hindistan'daki bir sanayi şehri olan Kota'da büyüdü. Babası Mahipal bir botanik profesörüdür ve annesi Shanta, Sanjay ve iki kardeşiyle ilgilenir. Bu tipik bir entelektüel ailedir: amcası Ashok Mehta bir zamanlar Frederick Forsyth tarafından yazılan "Çakal Günü" nün bir kopyasını satın almıştı. Kitap neredeyse parçalanıyor ama çocuklar yine de bir araya getirip okuyorlar. Sanjay'in erkek kardeşi Pankaj, Harvard Business School tarihinde görev süresi kazanan en genç öğretmen oldu (şu anda New York Üniversitesi'nde profesör). Pankaj, Sanjay ile aynı üniversiteye gitti ve "çok yönlü" olarak biliniyordu. Sanjay, "Aslında, kendimi biraz kardeşimin gölgesinde hissediyorum" dedi. Bu nedenle, Sanjay her zaman çok alçakgönüllü ve alçakgönüllü olmuştur. 2016'da Amerikan Sanat ve Bilim Akademisi'ne seçildiğinde, ailesine haber bile vermedi; iki yaşlı, iyi haberi komşularından duydu.

Massachusetts Teknoloji Enstitüsü'nün lisansüstü okulunda Sanjay, benzer düşünen bir grup arkadaş buldu. Ama nadiren flört etti ve şimdiye kadar karşı cinsle "nadiren" birlikteydi. Sanjay, bir aile kurmayı reddetmediğini, ancak olayların günümüze kadar geliştiğini söyledi. Yakın arkadaşları onun hayatını rahatsız etmemeye alışmış ve ailesi, oğlunun sonsuza dek bekar olma kararını uzun zamandır kabul ediyor. Belki de tam da onun her zaman kendi dünyasında yaşadığı için, diğer Google çalışanları onun bir gizem duygusuyla kuşatıldığını hissetmesidir. Sessiz ve derin olduğu biliniyor - bu düşünceli ve sıradışı bir insan. Masasında hala yaklaşık yirmi yıl önce yazılmış, düzgün listeler ve çizelgelerle dolu bir yığın Mead portföy notu var. Düşüncelerini hızla yazmak için bir kalem almaya alışkındır. Notların içeriğini nadiren alıntılasa da yazmanın düşünmeye yardımcı olduğuna inanıyor.

MIT'deki yüksek lisans derecesi için akıl hocası, karmaşık kod tabanlarının yönetiminde uzmanlaşmış etkili bir bilgisayar bilimcisi olan Barbara Liskov'du. Ona göre, en iyi kod, olağanüstü bir makale gibi olmalıdır. İyi uygulanmış bir yapı gerektirir ve her kelime ve cümlenin kendi anlamı olmalıdır. Ancak bu şekilde programlama, içerik oluşturucunun izleyiciyle empati kurmasını gerektirir. Ek olarak, bu aynı zamanda yaratıcıların kodu yalnızca bir amaç için değil, aynı zamanda onu bir sanat eseri olarak ele aldığı anlamına da gelir. Craig Silverstein, "Sistem tasarım işinde en iyisi olduğunu düşünüyorum. Sanjay tarafından yazılan kod dosyalarını görünce, orantılı oranlara sahip güzel bir heykel gibi olduğunu göreceksiniz." Dedi.

Google'da Jeff'in adı açıkça daha belirgindir. Aslında, iyi adam, Jeff Dean için aksiyon yıldızı Chuck Norris'e dayanarak birçok şaka bile yazdı. (Örneğin, "Chuck Norris sonsuza kadar sayabilir ... ve iki kez sayılır"; "Jeff'in özgeçmişinin yalnızca daha kısa olduğu için yapmadığı şeyleri listelemesi gerekir.") Ama bunu iyi bilenler için İkisi için Sanjay'in yeteneği kesinlikle Jeff'in gerisinde değil. İkisiyle uzun süredir birlikte çalışan Wilson Hsieh, "Jeff çılgın fikirler ve prototip oluşturma konusunda çok iyi, Sanjay ise geliştirme çalışmalarını sonuna kadar tamamlayabilecek türden bir insan." Dedi. Hayatta Jeff daha dışa dönük ve Sanjay ise Daha ölçülü. Kod düzeyinde durum tam tersidir. Jeff'in programlama sonuçları genellikle baş döndürücüdür - şaşırtıcı fikirleri çabucak çizebilir, ancak tüm süreç çok hızlı olduğu için diğerleri çoğu zaman anlayamaz. Ve Sanjay'in kodu çok dostane.

Silverstein, "Bazı kişilerin kodu çok gevşek, yani bir kod ekranı çok az bilgi içeriyor. Bu, kodun ne anlama geldiğini görmek için ileri geri kaydırmanız gerektiği anlamına geliyor. Ancak bazı insanlar çok fazla kod yazıyor. Çok yoğunsa, "Uh, peki, izlemeye devam etmeyi planlamıyorum" gibi hissedecek. Sanjay ikisi arasında bir denge buldu. Onun koduyla yüzleştiğinizde, "sorun değil, anlayabiliyorum" hissedeceksiniz, ancak aynı zamanda çok fazla içerik barındırıyor. "Silverstein ayrıca," Sanjay'in koduna yeni özellikler eklemeyi planladığımda, her zaman kancanın ayrılmış gibi göründüğünü görüyorum. Büyüklüğünü anlayabiliyorum ve böyle bir kodun nasıl yazıldığını bilmiyorum. "

Bu bahar bir sabah, Jeff ve Sanjay Google'ın yapay zeka departmanının bulunduğu Bina 40'taki küçük mutfakta duruyordu. Arkalarındaki beyaz tahta matris cebiriyle dolu; masanın üzerinde ise denetimsiz düşman ağları üzerine bir kağıt var. Jeff hayatında yeni yolunu bulmuş bir serseri gibi görünen soluk bir tişört ve kot pantolon giymişti; Sanjay bir kazak ve gri pantolon giymişti. Parlak pencereden büyük bir çam ağacı ortaya çıktı ve uzakta bir tarla vardı. Jeff çalıştığı müddetçe espressosuz asla yapamaz. Küçük mutfak barında, üç fit genişliğinde bir La Marzocco kahve değirmeni uğultu yapıyordu. Sanjay makineye baktı ve "Geç kaldık" dedi. Saat sabah 8:32 idi.

Kahve vakti bittikten sonra bilgisayarlarına doğru yürüdüler. Jeff masasından bir sandalye aldı - masası kirliydi ve Sanjay'in masası her zaman lekesizdi. Bir ayağını dosya dolabına koydu ve arkasına yaslandı; Sanjay önündeki ekrana baktı. Monitörde dört pencere açılır: solda web tarayıcısı ve analiz araçlarını çalıştırmak için terminal; sağda iki dosya Emacs metin düzenleyicisidir - biri yapılacaklar listesi ve not defteri, diğeri ise renk Muhteşem kod. Sanjay dizüstü bilgisayarını Jeff'in masaüstünün yanına koydu.

"Tamam, ne yaptık?" Sanjay konuyu açtı.

Jeff, "Sanırım TensorFlow Lite'ın kod boyutunu inceliyoruz" dedi.

Bu, makine öğrenimiyle ilgili önemli bir yazılım projesidir. Hem Jeff hem de Sanjay, hacminin sonsuza kadar artacağından endişe duyuyor; tıpkı kitap editörleri gibi, içeriği düzene sokmanın yollarını bulmaları gerekiyor. Bu amaçla, ikisi bir "zayıflama" aracı oluşturdu ve aracın kendisinin de optimize edilmesi gerekiyor.

Sanjay, "O yüzden ne kadar yavaş olduğunu anlamaya çalışıyorum" dedi.

Jeff cevap verdi, "Bu oldukça yavaş." Öne doğru eğildi ama yine de çok rahattı.

Sanjay, "Yani bu, yaklaşık 8 saniye yavaş olan 120 KB'yi temsil ediyor."

Jeff, "120.000 yığın çağrı, 120 KB değil" yanıtını verdi.

Sanjay, "KB muhtemelen metin miktarına atıfta bulunuyor" dedi.

Jeff cevap verdi, "Ah, evet, özür dilerim."

Sanjay, "Birim boyutu için hangi eşiğin ayarlanması gerektiğini tam olarak anlamıyorum. Peki ya 0,5 MB?"

Jeff, "Mümkün olmalı" dedi. Sanjay klavyede yazmaya başladı ve Jeff ekrana ilgi duydu. "Demek istiyorsun, eğer 0,5MB'den büyükse, o zaman biz ..." Sanjay sözlerini bitirmeden önce, Sanjay kodla cevap verdi.

Sanjay, araba kullanırken ellerini saat on ve iki yönüne koyuyor ve sonra dikkatle ileriye bakıyor - şimdi klavyeyi kullanıyor ve duruşu tamamen aynı. Ayakları omuz genişliğinde aralıklıdır ve hala en aşina olduğu durumu korumaktadır. İnce parmakları hafifçe düğmeler arasında gezindi ve yavaş yavaş birkaç genç programcının dikkatini çekti.

Yakında, aşamalı bir zafere ulaştılar ve Sanjay mevcut ilerlemeyi test etmek için bir emir girdi. Biraz yorgun, komut çalışırken e-posta adresini kontrol etti. Test bitmişti ama ilk seferinde fark etmemişti.

"Hey," Jeff parmaklarını şıklattı ve ekranı işaret etti. Jeff, günlük konuşmalarda her zaman çok rahat ve nazik olmasına rağmen, Sanjay ile bilgisayarın önünde birlikte oturduğunda, anında kendini beğenmiş, kaba ve daima düşmanca bir adam haline gelecektir. Sanjay buna uzun zamandır alıştı. Jeff'in düşünmesinin çok hızlı olduğunu düşündüğünde, ellerini klavyeden kaldırıyor ve sanki "Bir süre bekleyin" diyormuş gibi hareketler yapıyor. (Genelde Jeff hızlandırıcı, Sanjay ise fren.) İki kişi olmasına rağmen Yakında bir tartışma çıkacak gibi görünüyor, ancak son yirmi yılda, birbirlerine asla gerçekten bağırmadılar.

Sanjay ekranı kaydırır ve yeni kodu ekranın ortasına taşır. Jeff ona baktı, "Bunların hepsi normal sürece eklenebilir, değil mi?"

"Pekala," Sanjay kabul etti.

Jeff parmak eklemlerini sıktı. "İyi görünüyor, şimdi ekleyelim mi?"

Sanjay daha temkinliydi, "Hayır, ben ..."

Jeff biraz sabırsız görünüyordu, "Henüz bulamadığımız bir sorun mu var?"

"Bu doğru değil, yani önce mevcut durumu anlamalıyız. Önce bazı notlar alabiliriz, değil mi?"

"Tamam, sorun değil," Jeff tekrar rahatladı, konuşurken duyguları sürekli değişiyordu. Birlikte bir not düzenlediler.

Öğle yemeğine yakın, iki saat çalıştılar, bu sırada on dakikalık bir mola verdiler ve zamanlarının çoğunu işte iletişim kurarak geçirdiler. (Genç programcılar, çalışma durumlarını gördüklerinde derin bir hafızaya sahip olmalıdır, çünkü bu iki kişi arasındaki konuşma asla durmaz hatta durmaz.) Standart mühendislik uygulamasında, herkesin kodunuzu bir başkasına vermesi gerekir. Programcı incelemesi. Ama Jeff ve Sanjay bu adımı atladılar ve kayda "lgtm" yazdılar, bu da "bana iyi geliyor" anlamına geliyor -Bence olabilir. Bir bakıma, ayrıntılar yüzünden bunalmış olabilirler. Ancak, kod geliştirme çalışmalarının Google'ın kendi devasa işletme ölçeğini tam olarak dikkate alması gerekir. Endişelendikleri KB ve mikrosaniye gecikme süresi, dünyanın dört bir yanındaki veri merkezleri arasında katlanarak artabilir ve sonunda milyarlarca kata ulaşabilir. Bu büyük ve sürekli ısınan bilgisayar odaları, sonsuz işlemci raflarıyla doludur ve soğutma için önemli miktarda su soğutma kaynağı gerektirir. Jeff'in eve kolaylıkla döndüğü ve kızlarına "Sanjay ve ben bugün Google aramalarının hızını% 10 artırdık" dedi.

Büyük verinin temel taşı: MapReduce'un doğuşu

2003 yılının dört ayında Jeff ve Sanjay, Google'ın kuruluşundan bu yana en büyük yükseltmeyi tamamlamasına yardımcı oldu. Kullandıkları yazılım daha sonra iyi bilinen MapReduce idi. Bu yükseltme için ilham, Google'ın tarayıcısı ve dizinleyicisinin üçüncü yeniden yazımından geldi. Önemli bir sorunu her çözdüklerinde, coğrafi olarak dağılmış sayısız bilgisayar üzerinde işbirliği yapmaya hazır olduklarını ve bireysel cihazların güvenilir olmayabileceğini fark ederler. Bu nedenle, yalnızca çözümün kapsamlı bir şekilde tanıtılması, aynı sorunla tekrar tekrar karşılaşmaktan kaçınabilir. Daha spesifik olarak, Google'daki her programcının onu veri merkezindeki makineleri çalıştırmak için kullanabilmesini sağlamak için bir araç oluşturulmalıdır - başka bir deyişle, Google'ın tüm altyapısını devasa bir bilgisayar olarak ele alın.

Jeff ve Sanjay ofisin köşesine MapReduce'u yazdı. Ofis penceresinin dışında bir gölet vardı. MapReduce'un önemi, düzenli bir şekilde açıklanamayan karmaşık süreçleri düzenlemektir. MapReduce'un ortaya çıkmasından önce, her programcı, verileri nasıl böleceğini ve dağıtacağını, işi nasıl tahsis edeceğini ve donanım arızalarının üstesinden gelmekten sorumlu olmalıydı. MapReduce, programcılara bu tür sorunları değerlendirmek için yapılandırılmış bir yöntem sağlar. Şefin malzemeleri pişirilmeden önce sıralaması gibi, MapReduce ayrıca programcıların görevlerini iki aşamaya ayırmasını gerektirir. İlk olarak, programcının her makineye görevin "Harita" aşamasını nasıl tamamlayacağını (bir web sayfasında bir kelimenin kaç kez göründüğünü saymak gibi) anlatması gerekir; daha sonra, programcının tüm makine sonuçlarının "Azalt" ı elde etmek için talimat yazması gerekir (örneğin Yukarıdaki sonuçları ekleyin). MapReduce, dağıtım işinin ayrıntılarını yönetebilir, böylece programcıların bu karmaşık ve sıkıcı görevlerden kurtulmasına yardımcı olabilir.

Önümüzdeki yıl, Jeff ve Sanjay, Google'ın tarama ve dizine ekleme sistemini MapReduce görevleri biçiminde yeniden yazdı. Kısa süre sonra, diğer mühendisler MapReduce'un gücünü fark ettiklerinde, bunu Google Haritalar'da videoları işlemek ve döşemeleri oluşturmak için de kullanmaya başladılar. MapReduce çok basittir ve her türlü yeni görevi kolayca sindirebilir. Google'ın işletmesinin "gündüz ve gece kullanım eğrisi" denen net bir özelliği var - yani, gündüzleri geceye göre daha fazla trafik var ve MapReduce görevleri boşta kalma kapasitesini kullanmaya başlıyor. Canlıların gün içindeki deneyimlerini rüyalarında anlatması gibi, Google da artık kendi verilerini işlemek için aynı yöntemi kullanıyor.

Başlarda bir dizi işaret vardı. Google aslında arama şirketi kılığına girmiş bir yapay zeka şirketidir . 2001 Jeff Sanjay Noam Shazeer TurboTaxTurbot axturbot Shazeer pritany spearsBrinsley spearsBritney Spears Shazeer T.G.I.F Jeff Georges Harik Shazeer

MapReduce Jeff BigTableMapReduce Jeff Sanjay

2004 Jeff Sanjay MapReduceMapReduce Simplified Data Processing on Large Clusters MapReduce

Nutch Mike Cafarella Doug Cutting MapReduce Hadoop Cutting

Hadoop Hadoop Facebook Hadoop MapReduceFacebook Hadoop Hadoop MapReduce LinkedIn Netflix Randy Garrett Keith Alexander Hadoop 18000 collect it all

Jeff 2011 Jeff Jeff

Jeff Heidi Jeff Google BrainAlan Eustace Sanjay Jeff

2001 Claire Cui Jeff Jeff

Jeff TensorFlow MapReduce TensorFlow 2015 TensorFlow CEO Sundar Pichai AI Jeff AI

Jeff TPU AutoML Sanjay

James Cook George Vancouver John Harrison

Jeff Sanjay Palo Alto Sol Jeff Gmail 2004 4 1 Sanjay Jeff

Jeff Sanjay Sanjay Jeff Area Tech Leads Jeff Sanjay

Jeff Sanjay AI Jeff Jeff Sanjay .

Jeff Heidi

3 Jeff Sanjay Jeff Roadster Bernie 2016 Sanjay Model S Sanjay Jeff 7.1 20 Jeff Sanjay

6 Jeff Sanjay Jeff "

Jeff

Sanjay

Jeff

Jeff

Jeff Sanjay

Orijinal bağlantı:

https//www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge

Rihanna'nın aile tarihinin dördüncü bölümü: aile içi şiddet uygulayan ve yine tartışmaya atıfta bulunan eski erkek arkadaşıyla yeniden bir araya geldi.
önceki
Bir uzaylıdan sinyal aldığınızı söylemek için bir film kullanın. Cevap vermek istiyor musunuz?
Sonraki
"TFBOYS" "Haberler" 190330 "Kaptan Büyük Buz" son savaşı, Yi Yang Qianxi, genci momentumdan yararlanmaya yönlendirdi
Rihanna, aile tarihinin üçüncü bölümünü yaptı - efsanevi beyaz rapçi Eminem, işbirliği yapmaya ve zirveyi vurmaya davet etti
Mobil fotoğrafçılık: HUAWEI P20 Pro ile en çok altı yılım
190330 "Küçük General" Yi Yang Qianxi'nin son savaşı, gencin ivmeden yararlanmasına yol açtı.
Bir Gün: Telefonda bir gün
Rihanna, aile tarihinin ikinci bölümünü yaptı - saf ve masum bir kızdan seksi bir kıza dönüştü
Zipkin Proje Lideri ile Röportaj: Zipkin ile dağıtılmış izleme nasıl yapılır?
"Sex Study Room", haftalık küresel ağızdan ağza drama listesinde kesinlikle 1 numara olmaya değer
Nintendo Switch ile ilgili bugünün haberleri burada
Rihannanın aile geçmişi - küçük bir Karayip adasındaki sıradan bir kızdan bir dünya süperstarına
Dünyanın unuttuğu bir köşe: Küba'nın "Dream of Dream Classic Car"
GitHub 9K Yıldızı! Apollo'nun yazarı size bir mikro hizmet merkezinin nasıl yapılandırılacağını öğretiyor
To Top