Kimyasal & Malzeme Mühendisliği
Yapısal Mühendislik Simülasyonları Yüksek performanslı Hesaplama için Harnessing Spark
Table of Contents
Giriş: Yüksek hacimli Hesaplama Yapısal Mühendislikle tanışın
Yapısal mühendisler, muazzam bir hesaplama gücü talep eden simülasyonlarla karşı karşıya kalır. 100 yıllık rüzgar yükleri altında bir süspansiyon köprüsünün davranışını analiz eder, bir sismik olay sırasında yüksek katlı bir yanıt verir veya HPC'nin en iyi şekilde optimize edilmesi, her zaman milyonlarca serbestlik donanım ve karmaşık programlama ile ilgili sistemleri hızlı bir şekilde hızlandırır.
Apache Spark'ı Anlamak
Apache Spark, küme bilişim için tasarlanmış tek bir araç değil.Anasıtında, sıkıştırılmış veri setleri (RDD) kavramıdır ve bu da küme düğümleri arasında bölümlere ayrılmış nesneler koleksiyonlarıdır. RDDDDDD'ler üzerindeki Operasyonlar, bir Çevrimsel grafik (DAG) olarak ifade edilir.(e.g.,FLT:0,FLT:2) ve eylemlerin (örneğin, bilgisayar destekli bir grafik (DAG) ve kurtarma işlemlerinin daha önce yapılan bir grafikte yapılması gibi farklı bir temelsel analizler için tasarlanmıştır.
Spark, RDD'lerde yapılan yüksek seviyeli API'ler sağlar: DataFrames ve Datasets, hangi şema farkındalığı ve optimizasyonu Catalyst sorgu optimizasyonu ile optimize eder. DataFrame API, Python ve R'da veri çerçeveleri tarafından ilhamlanan ve özellikle de tabular simülasyon girişleri ve çıktılarını manipüle eden mühendisler için kullanışlıdır. Spark ayrıca kütüphaneleri içerir, akış, makine öğrenimi (MLlib), ve grafik işleme (GraphX).
Cluster Mimari ve Kaynak Yönetimi
Bir Spark uygulaması, sürücü programındaki SparkContext tarafından koordine edilen bir küme üzerinde bağımsız süreçler olarak çalışır. Sürücü programları görevler, işçi düğümleri üzerinde çalışan düğümler üzerinde çalışan düğümler üzerinde çalışan kişiler, veri kümesi yöneticileri Spark'ın standalone modunda, Apache Hadoop YARN ve Kubernetes'i takip etmek için yerel bir dizüstü bilgisayar için Spark iş başlatabilir.
Compromise olmadan Yanlış Hoşgörü
Uzun süreli simülasyonlar başarısızlık veya ağ hiccups için savunmasızdır. Spark, RD hattı aracılığıyla hata toleransını elde eder: Her RD, diğer veri setlerinden nasıl inşa edildiğini hatırlar.Eğer bir bölüm kaybolursa, bu bölüm çizgi grafiği kullanarak yeniden yönlendirilir.
Cam Mühendisliğinde Uygulama
Spark'ın paralel işleme modeli ve yapısal simülasyon görevleri arasındaki doğal uyum basit parametre süpürücülerinin ötesine geçer. Çeşitli beton uygulama alanları, Spark'ın mühendislik akışlarının nasıl değiştiğini göstermektedir.
Paralel Finite Element Analizi
Finite element yöntemi (FEM) simülasyonlar, yapısal analizin arka kemiği oluşturur. Domain decomposition - bir ağ alt alana ayrılır ve Kaliforniya Üniversitesi gibi kurumlarda her bir modelde çözülür - Spark tabanlı FEM, elementi sertleştirme, yük vektörü hesaplamak için, hatta iteratif lineer olmayan lineer olmayan devreler için devre dışı bırakmak için, örneğin, konjugate gradient) her türlü baskı ile birlikte, Kaliforniya Üniversitesi gibi kurumlarda sürekli olarak yük devre dışı bırakmak için, yüksek çözünürlükte bulunan modeller ile birlikte.
Olasılıksal Risk ve Güvenilirlik Analizi
Yapısal güvenilirlik analizi genellikle Monte Carlo simülasyonları veya stochastic finite elementleri gerektirir, rastgele malzeme özellikleri ile binlerce gerçekleştirmeyi gerektirir, yükler veya geometriler. Bu utanç verici paralel iş yükleri, Spark için idealdir.Her bir örnekle bir veriFrame, mühendisler, bulut platformlarında yorgunluk analizini kullanabilirler ve kredi yükleme sistemleri için gecikmeli görevlerin gecikmesini sağlar.
Optimizasyon ve Tasarım Uzay Keşifleri
Yapısal optimizasyon - topoloji, form veya boyut optimizasyonu - yüzlerce veya binlerce adayın tasarımını değerlendirmek içerir. Spark's MLlib, yüksek katlı bir ölçeklendirme algoritmaları gibi dağıtılmış optimizasyon algoritmaları sunar ve L-BFGS, karmaşık tasarım problemlerini çözmeye yardımcı olabilir; her tasarım noktası (çenek olarak, mühendisler, genetik algoritma tabanlı optimizasyon için bir popülasyonda objektif işlevi değerlendirmeyi paralelleştirmek için Spark kullanabilir.
Dinamik Yük Simülasyonları ve Gerçek Zamanlı Veri
Dinamik yükler altında yapısal yanıt (projektör, rüzgar gusts, blast) zaman adım adımlarını çözmeyi içerir.Komserasyon üst düzeyli zaman adım adım atamazken, Spark'da (örneğin, birden fazla yük vaka veya parametre çalışmasıyla ilgili olarak, Spark ile ilgili olarak, bilgisayar ağlarının yakınındaki analizini sağlar.Apollozun) ve tüm tarihi boşlukların hızlanması için geçerli bir akış hattını kullanabilir.
Cam Mühendisliğinde HPC için Spark Kullanımının Faydaları
Geleneksel HPC yaklaşımlarına kıyasla - MPI gibi özel kümeler veya Hadoop tabanlı işleme - Spark, mühendislik firmalarının gelişen ihtiyaçlarına uygun farklı avantajlar sunar.
Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız Hız
Spark'ın in-memory caching, 10-100× disk tabanlı MapReduce ile kıyaslanabilir.Sürücü çözücüler (örneğin, Newton-Raphson yakınlaştırma döngüleri), hafızadaki verileri azaltırken sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sıkılır.
Scalability
Büyük bir proje için bulut kaynakları eklemek için büyük bir makineden binlerce düğüme kadar.Bir 10 milyon dolarlık bir kabuk modeliyle işlem yapan bir yapısal mühendislik firması için, büyük bir proje için bulut kaynakları eklemek basit hale gelir. aynı PySpark kodu, 100-element truss işlemlerinin kod değişiklikleriyle 10 milyon-element kabuk modeliyle idare edebileceğini - sadece yapılandırma.Bu elastiklik özellikle pahalı sabit altyapıyı korumak olmadan farklı projelere adapte olması gereken danışmanlık firmaları için değerli.
Flexability
Spark birden fazla programlama dili (Python, Scala, Java, R) destekler ve birçok veri kaynağı ile bütünleştirebilir: HDFS, S3, ilişkisel veritabanı, Parkt ve hatta gerçek zamanlı akışlar. Mühendisler simülasyon çıktılarını tek bir boru hattında malzemeyle birleştirebilirler. Spark's MLlib ayrıca simülasyon iş akışlarına doğrudan giriş yapar - örneğin, bir sinir ağı bilgisayar korsanlığı ile ilgili olarak pahalı FEM çözülebilir ve hızlı tasarım için kullanabilir.
Maliyet-Effectiveness
Metamalzeme donanım veya bulut önyükleme örneklerini kullanarak, Spark özel HPC kümeleri için ihtiyaç duyar. Cloud sağlayıcıları yönetilen Spark hizmetleri (Amazon EMR, Google Dataprocc, Azure HDInsight) bu şarjı yalnızca hesaplama süresi için yapar. kısa sürede, patlamalı simülasyon çalışır, bu ödeme-as-you-go modeli satın almak ve bir on-premis süper bilgisayarları korumaktan daha ucuz siparişler olabilir.
Yapısal Mühendislik Çalışma Akışları'nda Spark'ı Uygulamayın
Mevcut bir simülasyon ortamına bütünleme, dikkatli bir planlama gerektirir, ancak bir zemin yazmasından uzaktır. Çoğu mühendislik ekibi karma bir yaklaşım benimsemektedir: kütüphaneler olarak doğrulamalarını ve Spark'ı orkestrat paralel infazları kullanmaya devam ediyorlar.
Set Up the Cluster
Yeni gruplar için bilgisayar dağıtacak, en basit giriş bulut tabanlı bir Spark hizmetidir. Mühendisler birkaç tıklama ile bir küme başlatabilir, simülasyon kodlarını yükleyebilir ve not defteri ile iş çalıştırmanız gerekir (örneğin, Jupyter with a Spark çekirdeği).For on-premisler için, Spark standalone modu birkaç düzine düğümle iyi çalışır.
Data Seriization and I /O
Ortak bir Pisack, PCFS veya S3 gibi dağıtılmış bir dosya sisteminde, bu dosyaları DataFrames'e okur ve simülasyon çözümleri ile hareket ediyor. Mühendisler genellikle Parkt veya euro formatındaki örgüler (columnar, sıkıştırılmış) ile ilgili olarak, mühendisler, bu dosyaları DataFrames'e göre genişletebiliyorlar, sonra küçük bir görünüm tabloları yayınlar (örneğin, malzeme özellikleri) C++ veya Fortran (OpenSees veya Abaqus gibi) ile birlikte kullanılabilirlik yapar.
Geliştirme ve Test
Mühendisler yerel bir Spark örneği üzerinde küçük bir veri kümesi ile başlamalıdır (örneğin, ayarlama ipuçları için kritik). mantık doğrulanırsa, temsil edilen veri boyutlarıyla test kümesine dağıtılırlar.The Spark Web UI, sahne süresini izlemeye yardımcı olur, shuffle read/write, and task skew - critical for setting Tips: useENFLT:10).
Örnek Workflow: Seismic Fragtitude Analysis
Bir Monte Carlo deprem zemin hareketleri altında 40 katlı bir binayı inceler. İş akışı: (1) Her bölüm için 10.000 rastgele malzeme gücü, baraj ve zemin hareketine sahip bir ekran görüntüsü olarak depolanır. (2) Bir Atmosfer DataFrame'a kadar bölüm, 1000 bölüme kadar bölüm. (3) Her bölüm için, bina çubuğunu yayınlayın (küçük RD yayın değişkeni) ve OpenSees to runlinear saat analizini tamamlamak için bir tıklayabilirsiniz. (4) Her görev bir parça döndürür.(Aple id, max sürüklenme)
Meydanlar ve Gelecek Yollar
Spark güçlü yetenekler sunarken, yapısal mühendislik takımları üretim dağıtımlarından önce birkaç engele yol açmalı.
Data Transfer and Seriization Overhead
Büyük FEM ağlarını düğümler ve serileştirme / nesnelere serileştirebilme süresine hükmetebilir. Çok iyi ağlar için (örneğin, milyonlarca element), her görevdeki tüm ağ geçidini serileştirme maliyeti paralel kazanımlara uygun şekilde dengelemek için. Solutions, Kryo serileştirme (barış veri düzeninden daha iyi bir şekilde) veya yayınlanabilir bir şekilde yayınlanabilir bir şekilde ayarlanabilir bir şekilde bir kez).
Paralel Programlamanın Kompleksi
Spark'ın yüksek seviyeli API'lere rağmen, doğru dağıtılmış simülasyonlar bölümleme, paylaşılan devlet ve hata kurtarma anlayışı gerektirir. Görevde yerellik, sessiz yanlış sonuçlar doğurabilir. Mühendisler kurtarma için alışmış ve farklı küme boyutlarıyla entegrasyon testleri öğrenmek zorundadır.
Özelleştirilmiş Uzmanlığı
Birçok yapısal mühendislik firması, Spark'da akıcı olan ev içi veri mühendislerinden yoksundur. Bu boşluk genellikle bilgisayar bilim adamları veya işe alım uzmanları ile işbirliği gerektirir.AR SQL Start guide[[Dönetici:0)Spark SQL Start guide[[[Dönetici: 1) ve online MOOCs yardımı, ancak gerçek iş yükleri ile pratik bir deneyim, soyut küme yönetimi (örneğin Databricks gibi) ve mühendislere tanıdık olan dizüstü bilgisayarlar sağlar.
Donanım ve Bulut Maliyetleri
Bulut kümeleri ön maliyete rağmen, büyük simülasyonlar dikkatli bir şekilde izlenmemiş olsa da, mühendisler veri depolama, ağ egre ve hesap saatlerini kullanarak, Spark'ın uzaktan doğrudan erişim desteği (RDMA) ve GPU'lar (RDMA) için anick, özellikle de tüm-tüm iletişim kalıpları için, tüm-tüm iletişim kalıpları için.
Future: Spark 3.x ve Beyond
Apache Spark 3.0, optimizasyon, dinamik bölüm pruning ve GPU-aware programcı tarafından kontrol edilen GPU hızlandırıcıları otomatik olarak ayarlayarak ve GPU hızlandırıcılarını yoğun algebra (e.g.T:0) ile ilgili projeler, optimizasyon ve yönlendirme için kullanılan sağlam devrelerin yükselişine devam ediyor.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Apache Spark, yüksek performanslı hesaplama için güçlü bir motor olarak kendini kanıtlamıştır. Bulut dağıtımlarının maliyeti, tüm boyutlardaki mühendisler için cazip bir seçenek haline gelir.Platformel süper bilgisayarları için bir kez rezervasyon yapmak için mühendislere ihtiyaç duyarken, büyük ölçekli sonlu elemanlar analizinin büyük ölçüde, mevcut çözücülerle entegre edilmesi için esneklik vaat eder ve bulut dağıtım maliyetleri, daha hızlı, daha yenilikçi ve daha yenilikçi bir şekilde inşa edilen çevresel tasarımlar için daha yenilikçi bir seçenek sunar.