Ahududu Pi Süper Bilgisayar Java One 2022'de
kaydeden Chris Bensen
Dilerseniz GitHub'daki bu blog gönderisini buradan okuyabilirsiniz .
Raspberry Pi Süper Bilgisayar ilk olarak Ekim 2019'da Oracle Açık Dünya için yapıldı. Belirli bir BBC TV dizisinde popüler hale gelen İngiliz polis kulübesini anımsatan büyük bir kare kutu içinde yapılandırılmış dört sunucu rafında 1050 Raspberry Pi 3b+ var. Hızlıca bugüne ilerleyin ve Ahududu Pi Süper Bilgisayarı (Pi Kümesi) e-atık kutusuna gönderildi, bazı parçaları ondan çıkarıldı ve bu yılın Mayıs ayına kadar iki yıl boyunca atıl durumda kaldı ve garajıma bir süreliğine ulaştı. komple revizyon.
1050 Raspberry Pi'nin nasıl oluştuğunun geçici bir tarihi için Dünyanın En Büyük Ahududu Pi Kümesinin Geçici Tarihi'ni okuyabilirsiniz .
Oracle İsviçre'den Gerald Venzl'in 12 düğümlü kümeye dikkatimi çekmesiyle başlıyor, ardından Stephen Chin ile büyük bir küme üzerinde beyin fırtınası yaptık. Pi Kümesinin COVID kısıtlamaları ve California yangınları sırasında nasıl e-atık olduğunu ve Eric Sedlar'ın onu nasıl kurtardığını ve sonunda Oracle Labs'ta depoladığını öğrenin. Bunu çok uzun bulursanız, bildiğimiz Dünyanın En Büyük Ahududu Pi Kümesinin orijinal yapım videosunu, Gerald Venzl tarafından hazırlanan bu Dünyanın en büyük Raspberry Pi Kümesinin İnşa Edilmesi videosunu ve Garajımdaki Büyük Pi Kümesinin bu videosunu izleyin - Bölüm I .
Ve bu arada, eğer bunu okuyorsanız, 'harika bir Aydınlatıcı' olma ihtimaliniz yüksek. Luminary nedir? Bu, sizin gibi geliştiricileri özel teknik içeriğe, ücretsiz ürünlere ve bu küme kadar harika bir şey oluşturmanıza ve bugün bir Luminary olmanıza yardımcı olacak bir topluluğa bağlayan, yakın zamanda başlattığımız geliştirici grubumuzdur .
diriliş
CloudWorld duyurulduğunda, hemen Dünyanın En Büyük Raspberry Pi Süper Bilgisayarını (bildiğimiz) yeniden canlandırmayı teklif ettik . İyi bir diriliş hikayesini kim sevmez? Teklifler şöyle bir şey oldu:
1. Pi-Day için işlevsel olmayan bir sanat eseri olarak Bilgisayar Tarihi Müzesi'ne bağışlayın.
2. Raspberry Pi'ler artık değerli. Dünyanın En Büyük Raspberry Pi Kümelerinden birinden ücretsiz bir Raspberry Pi 3B+ kazanmak için Pi'den bir parça çekiliş yapın.
3. Tarih yazmak için tek bir fırsatımız var. Bunu CloudWorld için düzeltiriz, aşırı ısınmaması için fanlar ekleriz ve laboratuvarlarda geliştirilen teknolojiyi gösteren bir "kurum içi" ve "uç" cihaz olarak çalıştırırız. Pi Kümesindeki her cihazda çalışan GraalPython , Java ve Oracle Linux 9'u dahil edeceğiz . Tümü , Siteden Siteye aracılığıyla Oracle Bulut Altyapısına (OCI) bağlıdır (bununla ilgili talimatlar için aşağıya kaydırın)Şirket içi ve mikro hizmetler, bilgi işlem bulut sunucuları, Kendi Kendini Yöneten Veritabanı, Hizmetler Ağ Geçidi ve Yük Dengeleyici aracılığıyla VPN. AR görselleştirmeleri ideal olurdu ve üzerinde harika bir şey çalıştırabilirdik — SETI@ home'u bir 84-Pi Kümesi olan Raspberry Pi Mini Süper Bilgisayarda çalıştırdığımız zamanki gibi. Dijital İkiz AR/VR hizmetlerimizi sergilerken ve geliştiricilere ve öğrencilere ilham verecek bloglar ve videolar oluştururken, dünyadaki herkesin bir iş yükünü çalıştırmak için kümeye kod gönderebilmesi için bir hizmet kurma fikrini buldum. İnsanlara, geliştiricilerin ve öğrencilerin Oracle'ın Ücretsiz Kullanımını öğrenirken ve kullanırken neden bu kadar eğlendiklerini gösterebiliriz . Artı, Guinness Rekorlar Kitabı'na girebiliriz.
Üçüncü seçeneği seçtik ve yeni bir laboratuvar arayışı başladı. Yukarıda belirtilen çeşitli ürün ekiplerinin liderlerinin yanı sıra Raspberry Pi topluluğunun Jeff Geerling ve Eben Upton gibi liderleriyle konuştum ve bir plan hazırladım. Size planın tamamını anlatamam çünkü bunun temellerini henüz attık ama daha yapılacak çok şey var. Bu sadece Pi Kümesini CloudWorld'de DevNucleus'a getirmenin hikayesi ve sonrasında olanlardan kısaca bahsetmek. Bir Guinness Kitabı değerlendirmesinin gerçekten pahalı olduğu ortaya çıktı!
İlk adım, bir bütçe belirlemek ve uygulanabilir olup olmadığını görmek için işin bir tahminini yapmaktı. İhtiyacımız olduğunu biliyorduk:
1. Hayranlar. Bir sürü hayran.
2. Eksik herhangi bir parçayı değiştirmek için.
3. Her şeyi test etmek için.
4. Yeni yazılım yazmak.
Her Pi ağı açılır. 2019'da tüm kümede Oracle Linux 7 çalıştırıyordum, ancak yine de çalışıyor muydu? Tüm kaynak koduna, MAC adreslerine ve yeniden yapmak için gereken her şeye sahip miydik?
İkinci adım, Pi Kümesi üzerinde çalışacak bir yer bulmaktı. Çift kapılı, bir yük asansörüne yakın, üzerinde çalışmak için yeterli güç ve alana ve sıkı bir şekilde kilitlenmemiş bir ağa sahip bir yer bulmaya çalışın - kolay değil! Dünya çapındaki Oracle tesislerine baktım. Bunun gibi bir şey üzerinde uzaktan çalışmanın lojistiği ve bunun için yapılması gereken tüm fiziksel iş, dünyanın herhangi bir yerinde ancak belirli gereksinimler karşılanırsa işe yarayacağı anlamına geliyordu. Oraya gitmem, her şeyi ayarlamam ve yardım edecek bir düzine insan bulmam gerekirdi. Uzaktan erişim için kurmuştuk ama işler yolunda gitmediğinde birisinin şahsen hazır olması gerekiyordu. Harika eşimle güzel bir öğle yemeğinden sonra garajımızın en iyi şekilde çalıştığına karar verdik ve #BigPiClusterInMyGarage burada başladı.
Hayran Ekleme — Raspberry Pi'yi Soğutma
Teslim edildikten sonra, bütçemizin doğru olduğundan emin olmak için çalışmaya başladım, ardından yedek parça siparişi verirken (çoğunlukla fanlar) bazı şeyleri düzeltip test ettim. Pek çok hayran: Tam olarak 250 yeni hayran. Küme 257 fanla sonuçlandı ve bu, anahtarların, sunucunun veya güç kaynaklarının her birindeki fanları saymıyor. Bu, tüm kümeyi parçalarına ayırmamı ve yeniden birleştirmemi gerektiriyordu. Her cıvata çıkarılmadı, ancak 21 Pi 2U bankasının tümü demonte edildi, her 5 Pi'den biri çıkarıldı ve değiştirildi, bu da fanlar için braketleri olan 250 yeni Pi kutusunun basılması gerektiği anlamına geliyordu. Bunu buradan öğrenebilirsiniz . Victor Agreda , yeni satın aldığı Ultimaker S5'i, kutuların birkaç düzine hayran sürümünü yazdırmak için kullandı. Hayranların hepsinin güce ihtiyacı vardı ve Eli Schilling'e çok teşekkürlerkablo demetlerinin çoğunu oluşturmak için. Ayrıca biraz paskalya yumurtası ekledik. Bunu dünyaya anlatırsam pek paskalya yumurtası olmayacağını biliyorum, ancak aşağıdaki Warble bölümünde daha ayrıntılı olarak açıklayacağım (çünkü hiçbir şey söylememek çok havalı). Dünyanın En Büyük Ahududu Pi Kümesinin Geçici Tarihi'nde bulunabilecek çalışmaların bazılarını belgeleyen birkaç videom var .
İşletim Sistemi — Çevresindeki En Akıllı İşletim Sistemi
Bence çoğumuz altyapı ve donanım oluştururken iyi bir işletim sisteminin değerini hafife alıyoruz ve Oracle Linux birinci sınıf. Dünyanın En Büyük Ahududu Pi Kümesinin Geçici Tarihi'nde işletim sistemi hakkında daha fazla ayrıntıya giriyorum (ve evde Pi'yi başlatan ağ kurabilmeniz için üzerinde çalıştığım başka şeyler de var).Üzerine inşa edilecek onca çalışmamız olduğu için Oracle Linux 7'den Oracle Linux 9'a yükseltmemiz gerekti. Size bir sır vereceğim: o kadar basit değildi. Yine de, Oracle Linux ekibi birlikte çalışmak için inanılmazdı ve Pi Kümesi için işletim sistemini kurmak için gerçekten tüm övgüyü hak ediyor. Gidip Oracle Linux 9'a bakın, kullanmaya veya yükseltmeye değer. Kök hesabın artık varsayılan olarak SSH erişimine sahip olmadığı anlamına gelen eklenen güvenlik katmanı gibi birkaç aksaklık vardı.
Burada Pi'yi nasıl başlattığımızdan bahsetmeye değer. Kümedeki her Pi, sunucudaki tek, salt okunur bir NFS bağlantısını başlatan ağdır ve sunucu veya Pi her açıldığında bir bash betiği çalıştırmak için bir sistemd hizmeti ekledik. Bu, çalıştırdığımız şeyi yapılandırmayı neredeyse zahmetsiz hale getirir.
Yazılım ve Bulut Hizmetleri — GraalVM, İstemcide veya Bulutta Hızlı Çalışıyor
Tüm yazılımlar açık kaynaklıdır ve burada DevRel GitHub depomuzda bulunabilir. Laboratuarlardan gelen ve teknik ön izleme olarak bile mevcut olmayan bazı şeyler var (denedim, sadece hazır değillerdi), yani bunlar dahil edilmedi. Dikkatli olun, bu kodun çoğu hızlı bir şekilde yazılmıştır. Bulduğunuz şey pek mantıklı gelmeyebilir, o yüzden açıklayayım.
İlk olarak, kümedeki yazılım var. Sunucu, GraalVM üzerinde GraalPython'dan oluşan bir Docker konteyneri çalıştırır . Bu Dockerfile sürekli geliştiriliyor, bu yüzden henüz kopyalamanızı önermiyorum. Bazı hata raporları sağladım, ancak Graal ortam değişkenleri ve CTRL+C çalışır çalışmaz (ve belki GraalPython için yeni bir görüntü oluşturulursa) hemen dalmak isteyeceksiniz. Bunu yapıyor. GraalVM altında saf Python kodunu çalıştırırken performansta yaklaşık 8 kat artış gördüm . Bu oldukça etkileyici!
Kümedeki her cihaz bir web servisi çalıştırır. Sunucu, herhangi bir cihazın dinlemesi için IP adresi ve bağlantı noktası ile bir UDP mesajı yayınlar ve otomatik keşif için sunucuyla iletişim kurar. Bu, sunucunun IP adresinin bir ortam değişkenine konulduğu önceki yıllara göre yenidir. IP adresi değişmiyor, bu yüzden onu tam olarak kodlayabiliyoruz, ancak iki sorun vardı: Bunun üzerinde çalışan herkesin masaüstünde bir test sistemi çalıştırması ve masasında bir Pi veya birkaç Pis simülasyonu yapması ve sudo yaptığınızda ortam değişkenleri kaybolur. Bu aslında birçok sorunu çözer! Bir Pi açıldığında, web sunucusunu çalıştırır, UDP mesajını dinler, IP adresini ve MAC adresini sunucuya kaydeder ve işi dinler. Aralıklarla,
Her beş saniyede bir her Pi, tüm verilerini (CPU, bellek, sıcaklık vb.) yerel ORDS desteği aracılığıyla Otonom Veritabanındaki bir REST uç noktasına gönderir. Dokümantasyon burada bulunabilir . Pi'nin verilerini gönderememesi durumunda, bir dahaki sefere biraz daha uzun süre beklediği ve 60 saniyeye kadar ölçeklendiği bir kod koydum. Kendi Kendini Yöneten Veritabanının zahmetsizce işlediği bir veri dağı olduğu ortaya çıkıyor. İsim verilmeyecek birkaç başka veri tabanını denedim ve başa çıkamadıklarını söyleyelim, bazen beş saniyeden fazla gecikmelere neden oldu.
AR/VR ile Dijital İkiz — Verilerinizi Görselleştirin
Burada bulabileceğiniz ve en sevdiğiniz 3B programda açabileceğiniz Pi Kümesinin oldukça ayrıntılı bir 3B modelini oluşturdum . AR/VR ve bulut uzmanlarımız Wojciech Pluta , Victor Martin , Bogdan Farca ve Stuart Coggins , harika AR ve VR deneyimleri oluşturmak için çalışmaya başladı. Veritabanlarını ayarladılar, APEX uygulamaları yazdılar ve akış için socket.io'yu çalıştırdılar. OCI OKE adlı bir Kubernet kümesinden yararlandılarböylece 3D deneyimler düşmeden ölçeklenebilir, bu da herkesin Pi Kümesinin Dijital İkizini oturma odasına koyabileceği anlamına gelir. AR için iPad'lerimiz ve basılı QR kodlarımız var; böylece iPad, kümeyi milimetrik doğrulukla izleyebilir ve katılımcıların kümede olup bitenleri etkileşimli olarak görmesini sağlar. Ekip ayrıca, detayları yakında açıklanacak olan bir Meta VR versiyonu da oluşturdu. Garajımda tüm kümeyi çalıştırmak için yeterli güç yoktu, bu yüzden bunu entegre edeceğiz ve CloudWorld'de kapılar açılmadan önce test edeceğiz. Çalışabilir, düşebilir. Ne olursa olsun, iyi bir hikaye olacak! AR/VR Digital Twin hakkında bir şeyler yazdığımızda buraya bir bağlantı ekleyeceğim.
OCI Hizmetleri — Her Projenin Merkezinde Bulut Altyapısı Vardır
Garajımda, Pi Kümesi bir "yerinde" sunucu olarak ayarlanmıştır. Ubiquity Dream Machine Pro'mda yalıtılmış bir alt ağ oluşturdum, bir Bastion kullanarak OCI'ye bir siteden siteye VPN yapılandırdım ve iki ağ arabirimine (biri Pi Kümesi alt ağı için ve biri Pi Kümesi için) sahip yerel bir atlama kutusu kullandım ) . Böylece Pi Kümesi dış dünyaya tek bir IP adresi olarak görünür. Ortaya çıkın, ağ gücünü takın ve hazırsınız. Keşke kurulum bu kadar kolay olsaydı ve kabloların yerinden çıkmadığından emin olmak için her şeyi test etmek zorunda kalmasaydım ama kulağa daha eğlenceli geldiği için bu kadar kolay olduğunu söyleyelim.
CloudWorld'de ağın kontrolüne sahip olmayacağız, bu nedenle Pi Kümesi bir "uç cihaz". Services Gateway , Load Balancer ve Domain Management gibi bulut hizmetlerini kullanır . Evet, bir alan adımız var. Buna bir sonraki bölümde geleceğim.
Ağ şöyle görünür:
Bununla ilgili herhangi bir sorunuz varsa, Oracle'ın geliştiriciler için halka açık Slack kanalına gidin . İstediğiniz soruyu sorun. Nasıl kurulur, hangi servislerin kullanılacağı. Cevaplarını orada bulacaksın!
IoT — Küçük, Ucuz Mikrodenetleyicilerle Belirli Hafif Görevler
Ayrıca kümede çalışan bir çift Arduino'muz var. İlk Arduino, Ethernet HAT'lı bir Arduino Mega'dır. Orijinal kod burada bulunabilir . Bir web hizmeti çalıştırır ve sunucudaki fiziksel sıfırlama ve güç düğmelerine uzaktan erişim için iki solenoidi açar. Depoya kıyasla yazılımı biraz değiştirdim ve henüz yayınlamadım, bu yüzden bu eski sürümü kaldırdım. Yayınlamadığım sürüm kendini kaydeder ve bir geliştirici Bastion'a SSH gönderdiğinde basit bir başlatma komutunu bekler.
İkinci Arduino aynı donanımdır ancak bir JSON yükünü dinleyen bir REST sunucusu çalıştırır ve polis kulübesinin tepesindeki ışıkta bir düzine NeoPixel'e bağlıdır.
Warble — Pi Kümesi için Tasarlanmış Özel Bir Programlama Dili
Alan adını barındırıyoruzhttps://warble.withoracle.cloudEtki Alanı Yönetimi , bir Yük Dengeleyici ve bir İşlem Örneği tarafından desteklenen OCI üzerinde . Bilgi işlem örneği, Pi Kümesinde çalışan yazılımın aynısını çalıştırıyor: GraalPython içeren bir Docker Konteyneri ve bir web hizmeti. Bu, prime time için pek hazır değil ama 18-20 Ekim tarihlerinde burayı veya Twitter'ı tekrar kontrol edin çünkü CloudWorld sırasında canlı olacak ve bence çok eğlenceli olacak.
Twitter için Warble adlı Pi Kümesi üzerinde çalışacak şekilde tasarlanmış bir programlama dili oluşturduk . Warble tam özellikli bir programlama dili değil ve birçok kısayol kullandım. Twitter'a bir Warble gönderebilmeniz ve Pi Kümesinde çalıştırabilmeniz için mümkün olduğunca az karakter kullanmak üzere yapılmıştır. #pi hashtag'ini aramak için Twitter API'sini kullanan bir Bilgisayar Örneği üzerinde çalışan bir Python betiğim var . Bir sonraki karakter bir açık kaşlı ayraçsa ve son karakter bir yakın kaşlı ayraçsa, o zaman bir Warble'ımız var ve bir veritabanında saklanıyor. Örneğin:
> #pi{PRINT(“hello cluster”)}
< hello cluster
Dünyanın En Büyük Ahududu Pi Kümelerinden birinde Pi'yi kimin en çok haneye kadar hesaplayabildiğini görmek harika olmaz mıydı?
> #pi{PRINT(2*ROUND(ACOS(0.0),3))}
< 3.142
API'yi kısıtlamasına rağmen Twitter çok eğlenceli olacak ve bu nedenle barındırılan alan adına sahibiz. Warbles göndermek için bir REST uç noktası sağlayacağım. Belki birisi Warble veya başka bir yolla Bailey–Borwein–Plouffe_formula ile Pi'nin nasıl hesaplanacağını çözebilir.
Bir sözdizimi grameri yazmayacağım ama bazı örnekler vereceğim.
Warble değişkenleri destekler:
> #pi{x=0PRINT(x)}
< 0
> #pi{x=1/16.0²*(4.0/(8*k+1)-2.0/(8*k+4)-1.0/(8*k+5)-1.0/(8*k+6)}
<
> #pi{i=0;WHILE(i<10){PRINT(i);i++}}
< 0
< 1
< 2
< 3
< 4
< 5
< 6
< 7
< 8
< 9
> #pi{FOR(i=0;i<10;i++){PRINT(i)}}
< 0
< 1
< 2
< 3
< 4
< 5
< 6
< 7
< 8
< 9
Artı, değerleri kaydedebilir ve tekrar yükleyebilirsiniz. Bunlar kullanıcıya özeldir:
> #pi{SAVE(“pi”,1)}
<
> #pi{x=LOAD(“pi”);x++;SAVE(“pi”,x);PRINT(x)}
< 2
> #pi{PLAYSOUND(”http://downloads.bbc.co.uk/doctorwho/sounds/tardis.mp3");}
<
> #pi{LIGHTS(0,255,0,0)}
<
> #pi{LIGHTS(23,0,255,0)}
<
> #pi{LIGHTS(0,0,255,0);SLEEP(20);LIGHTS(0,0,255,0)}
<
> #pi{FOR(i=0;i<24;i++){LIGHTS(i,0,255,0)}SLEEP(20);FOR(i=0;i<24;i++){LIGHTS(i,0,0,255)}}
<
Ubiquity Dream Machine Pro'da Tim Clegg'in yardımıyla yeni bir alt ağ oluşturdum. İşte izlediğimiz adımların bir özeti. Ubiquity ve Oracle Cloud'daki seçenekler değişeceği için belirli ekran görüntüleri veya video sağlamayacağım. Bunun yerine, neye ihtiyacınız olduğuna ve ne yapmanız gerektiğine dair bazı önemli noktalar şunlardır:
Ağlar altında, bir adla yeni bir ağ oluştur, "pi" yi seçiyorum.
VLAN Kimliği: 3
Ağ Türü: Standart
Siteden siteye bir VPN
Oluşturun Ağ Adı: pivpn
Önceden Paylaşılan Anahtar: ***********************
Sunucu Adresi: <Yönlendiricinin IP Adresi> ( varsayılan iyi olmalıdır)
Uzak Ağ Geçidi/Alt Ağlar: 10.0.0.0/24
Uzak IP Adresi: <Uzak VPN'nin IP Adresi>
Gelişmiş: Manuel
IPsec Profili: Özelleştirilmiş
Rota Mesafesi: 30
Anahtar Değişim Sürümü: IKEv1
Şifreleme: AES-256
Hash: SHA1
IKE DH Grubu: 5
ESP DH Grubu: 5
Mükemmel İletme Gizliliği: etkin
Dinamik Yönlendirme: etkin
Üç güvenlik duvarı kuralı oluşturdum:
1. pi bloğu 192.168.3.1 (ağ geçidi)
Tür: LAN Yerel
Eylem: Bırakma
Kaynağı, Kaynak Türü: Ağ
Kaynağı, Ağ: pi
Hedefi, Kaynak Türü: Ağ
Hedefi, Ağ: pi
Hedefi, Ağ Türü: Ağ Geçidi IP Adresi
2. Varsayılan olarak pi'yi kabul et
Tür: LAN
Eylemde: Kaynağı Kabul Et
, Kaynak Türü: Ağ
Kaynağı, Ağ: Varsayılan
Hedef, Kaynak Türü: Ağ
Hedefi, Ağ: pi
3. pi bloğu Varsayılan
Tür: LAN Çıkışı
Eylem: Bırakma
Kaynağı, Kaynak Türü: Ağ
Hedefi, Ağ: pi
Hedefi, Kaynak Türü: Ağ
Kaynağı, Ağ: Varsayılan
Gelişmiş: Manuel
Eşleşme Durumunu Kontrol Et Yeni
Eşleşme Durumunu Kontrol Et Geçersiz
4. OCI'de Ağ ve Siteden Siteye VPN
IPSec Bağlantısı Oluştur'a gidin.
Bir isim ver.
Bunun genel IP adresinizi almasını isteyeceksiniz.
dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com
İki tünel oluşturmanız gerekecek, bu yüzden ikisini de aynı VPN'e işaret edecek şekilde ayarladım, çünkü OCI iki tane gerektiriyor ve ağımda yalnızca birini açığa çıkardım. Bunu VPN'e ekleyeceksiniz.
5. Bir Dinamik Yönlendirme Ağ Geçidi
kurun 6. Bir VCN kurun, yerel alt ağınız olan CIDR ile bir Giriş Kuralı ekleyin, örneğin benimki 192.168.3.0/24.
Gelecek
Oracle CloudWorld'de DevNucleus'un adımlarını attıktan sonra Pi Kümesi, Oracle Labs'a doğru ilerliyor ve burada... pekala, bir sonraki kısım şimdilik biraz sır. Potansiyel kullanımlar şunları içerir:
1. GraalVM ve Java için ek testler çalıştırmak
2. Uç bilgi işlem projeleri
3. Robotlar ve Paralel İşleme (yani sinir ağları)
5. Geliştirici olarak sizin tarafınızdan bize önerilen etkinlikler
Pi Günü 2023 yaklaşırken, bu inanılmaz teknoloji parçası için evrimin bir sonraki aşaması için kesinlikle bizi izlemeye devam etmek isteyeceksiniz. Kim bilir? Pi'den birkaçı kümeden çıkıp ellerinize bile geçebilir.
Projede emeği geçen herkese teşekkür etmek istiyorum. Bu çılgın harika projenin nasıl ortaya çıktığını öğrenmek için Dünyanın En Büyük Ahududu Pi Kümesinin Geçici Tarihi'ni okuyun .

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































