Matematik veya hesaplama üzerinde yoğunlaşmak tercih edilir mi?


11

Krylov Subspace Metodları ile ilgili araştırmamla aynı zamanda, HPC'nin arkasındaki matematiği bir adım önde veya hesaplama teorisini (donanım, işletim sistemi, derleyiciler vb.) Keşfetme seçeneğim var. Şu anda, hem yeterli bilgiye sadece tarafından olsun. Örneğin, CG denklemlerini ve yinelemeli yöntemlerin temellerini nasıl türeteceğimizi biliyorum ama Önkoşullar ve Yakınsama gibi detaylar ve daha karmaşık şeyler hakkında bilgim yok. Benzer şekilde, Sonlu Elemanlar Yönteminin (Zayıf Form, Zayıf olmayan form, Codomain ve Galerkin gibi şeyler) ve şeylerin temellerini biliyorum ama derinliklerini bilmeyeceğim. Hesaplamalı cephede, olası tüm dillerde seri olarak nasıl kodlanacağını biliyorum ve OpenMP ve MPI'yi yeterince iyi kullanabilirim. Donanımı ve önbelleğe almayı çok iyi anlamıyorum.

Benim sorum şu: Neye odaklanmalıyız: Matematik veya Hesaplama? HPC'de ayrılmazlar mı? Birinin diğerini değil, birini öğrenmesi önerilir mi?

DÜZENLEME: Şu anda Makine Mühendisliği (pişman olduğum) üzerine çalışıyorum ve mühendislik ve hesaplamada (akışkanlar, ısı transferi vb.) Tonlarca dersim var. Bu yıl HPC için yüksek lisans okuluna katılacağım ve mezuniyet eğitimime başlamadan önce bazı yönlerini (Math / Comp / Hybrid) güçlendirmek istiyorum. Matematiği ve comp'i eşit derecede seviyorum (bu yüzden "Daha fazla zevk aldığın şeyi yap" gereksizdir).

Yanıtlar:


10

Aeismail'in cevabını seviyorum, ancak alternatif bir bakış açısı sunacağım.

Optimizasyonda, gerçek analizi anlamadan alanı gerçekten öğrenmek imkansızdır. Sayısal sorunları ele almadan önce bile, dizilerin yakınsama kavramlarını anlamanız gerekir, çünkü sınıflarda algoritmaların yakınlaştığını kanıtlayacaksınız. Süreklilik ve farklılaşabilirlik gibi kavramları yüzeysel bir seviyeden daha fazla anlamalısınız. Sonuç olarak, gerçek analiz doğrusal olmayan programlama dersleri için bir ön koşuldur.

Tezim sıradan diferansiyel denklemlerin çözümü için yöntemlerle ilgilidir. Yakınsama sorunları, özellikle "yerel hata toleransımı azaltırsam, hesaplanmış sayısal çözümüm çözdüğüm denklemlerin gerçek çözümüne yaklaşır" gibi şeyler yine gerçek analiz gerektiren konulardır. Yakınsama sorunları için teori geliştirmek için (danışmanlarımın isteklerine karşı) iki yarıyıl gerçek analiz yapmam gerekiyordu. (Birkaç el yazması ile karşılığını aldı.)

Bununla birlikte, sayısal yöntemlerle ve HPC'de saf matematik dersleri almadan oldukça iyi hayatta kalan insanlar olduğunu biliyorum. Gerçekten işgal etmek istediğiniz niş bağlıdır.

Yeni yöntemler geliştirmek istiyorsanız, teori dersleri yardımcı olur. Teori dersleri genel matematik okuryazarlığı için de yararlıdır; matematik makalelerini okumak çok, çok daha kolay hale gelir.

Sorunlara belirli sayısal yöntemler uygulamak istiyorsanız, sayısal yöntemler sınıfları daha yararlıdır. Bu bakış açısının aeismail'in geldiği yer olduğuna ve mühendisler için daha yaygın bir durum olduğuna inanıyorum. (Feragatname: Birbirimizi tanıyoruz ve aynı bölümden mezun olduk.)

HPC'ye gelince, edindiğim izlenim, deneyimin en iyi öğretmen olduğudur. Paralel bir programlama dersi aldım ve biraz faydalı oldu, ancak sınıfın ana mesajı bir şeyler denemek ve işe yarayıp yaramadıklarını görmekti. Tez araştırmanız için önemliyse, HPC'de deneyim kazanacaksınız. Değilse, yapmazsınız ve muhtemelen vites değiştirmek ve HPC problemlerini çözmek kadar önemli olmayacaktır. Tezim özellikle HPC-ağır değildi, en azından ne programladığım açısından, bu yüzden bu beceriler grubunu seçmem gerekmedi.

Özetlemek için, muhtemelen tez probleminizle ilgili konularda arka plana odaklanmalı, gelecekte ne yapmak istediğinizi aklınızda bulundurmalı ve diğer araştırmacılarla hangi geniş, genel arka planla iletişim kurmanız gerektiğine karar vermelisiniz. katılmak istediğiniz topluluk. Doktora programınız ders almanız için son fırsatlardan biri olacak ve eğer matematik teorisini (veya gerçekten herhangi bir konuyu) öğrenmek istediğinizi düşünüyorsanız, bir tür temel oluşturmadan bunu kendi başınıza öğrenmek oldukça zordur. önce yeterlilik.


İlginç bir bakış açısı - ve örnek, benim açımdan faydalı bir karşı iddia. (Açıkça yakınsama kanıtlarını dışarıda bıraktığım optimizasyon üzerine birkaç ders vermek üzereyim, çünkü odak sayısal yöntemlere odaklanıyor ve eğer bir şeyleri "kanıtlamak" için yeterli zaman yok Pazarlığın bir parçası olarak gerçek analizi tanıtmalıyım.)
aeismail

2
SISC, J. Scientific Computing, CMAME, vb. Dergilerde ortaya çıkan teoremleri ve (gerektiğinde çaba ile) kanıtları anlayabilmek için yeterli matematik dersi almanızı öneririm. Bu muhtemelen gerçek analizde bir ders, soyut PDE'de bir ders anlamına gelir teorisi, genel sayısal analizde bir ders ve kısmi diferansiyel denklemler için takdirlerde bir ders. Kişisel deneyimlerime göre, kendi kendine çalışma, neden seçimler yapıldığını anlamak için açık kaynak kütüphanelerinde dolaşmak ve en önemlisi, böyle bir kütüphanenin (PETSc) geliştiricisi olmak HPC öğrenmek için çok değerliydi.
Jed Brown

Jed: Ne yazık ki, pek çok lisansüstü öğrencisi bağlamında bu mümkün değil. Tüm bu dersleri ve ayrıca doğrudan araştırma alanım için gerekli olan tüm fizik bilimleri derslerini alamayacağımı biliyorum. Peki bu dengeyi nasıl dengeliyor - özellikle bir öğrencinin birçok kursa kaydolmasını (ya da oturmasını) istemeyen bir danışmana sahip olması bağlamında?
aeismail

@aeismail: Bunu kariyere yatırım olarak gördüm ve hala doldurmam gereken boşluklar var. Eğer önemliyse, bunu yapmak için zaman bulursunuz. (Dediğim gibi, danışmanlarımın isteklerine karşı yaptım ve son 10 yıldır çözmek istediklerini söyledikleri sorunları çözmeye başlayan bir yaklaşımla sonuçlandım.) yayınlamak için çok fazla baskı olduğunda destekleyici danışmanlar bulmak zor. Danışmanların hesaplamalı bilimde olmadıkları (ya da sizden ne olduğuna dair farklı fikirleri varsa) da zordur.
Geoff Oxberry

12

HPC, matematik, hesaplama, bilgisayar bilimi ve uygulamaların bir karışımıdır. Uzun vadede gerçekten başarılı olabilmek için hepsini anlayabilmeniz gerekir. Bununla birlikte, hepsinde aynı seviyede yeterliliğe sahip olmanız gerekmez.

Hesaplamaya karşı matematik argümanında, bir mühendis için, sayısal uygulama konularının ilk başta daha önemli olduğunu savunuyorum. Matematiksel teori öğrenene kadar beklerseniz ve uygulamaya başlarsanız, şüphesiz faydalı olsa da, tez araştırmanızı doğrudan etkilemeyecek şeyler üzerinde uzun zaman harcayabilirsiniz.

Bu yüzden, önce hesaplamalı yönleri anlamaya ve sonra geri dönüp matematiksel teorideki delikleri doldurmaya eğilimliydim. Donanım sorunları da öğrenilebilir - ancak yazılımları nasıl etkilediğinin birçoğu da platforma bağlı olacaktır, bu yüzden tekrar gündeminizdeki ilk öğe olmayabilir.

Diğerleri elbette benimle aynı fikirde olmayabilir; belirttiğiniz gibi, bu gerçek bir sorudan ziyade bir fikir parçasıdır.


9

Her ikisinde de olabildiğince çok ders alın. Yaptım ve pişman değilim.

Bir araştırma kariyeri ile ilgilendiğinizi varsayarsak, bu ikisinin herhangi bir karışımıyla başarılı olabilirsiniz. Bilgileri sizinkini tamamlayan ortak çalışanlar bulun. Sayısal yöntemlerin doğruluğu ve istikrarı ile ilgili olduğu için önemli miktarda matematik biliyorum, ancak HPC hakkında çok daha az. HPC'yi çok iyi tanıyan işbirlikçilerim var, bu nedenle birlikte çalışarak büyük makinelerde çalışan yenilikçi sayısal yöntemler elde edebiliriz. Matematiği yapıyorum ve çoğunlukla hesaplamayı yapıyorlar.

Dedi ki, sanırım matematik

  • daha temel
  • öğrenmek daha zor
  • daha uzun bir süre alakalı kalır

oysa HPC konular

  • daha hızlı değiş
  • kendi başınıza daha kolay alınabilir
  • genel olarak daha az kullanışlı ve daha fazla soruna / uygulamaya / makineye özel

Bu aşırı genellemedir ve kesinlikle aynı fikirde olmayan yorumları çekecektir. Ama bence gerçek var.


Tüm cevaplarınız için çok teşekkür ederim. CSE'nin 3 temel direği (Sayısal Matematik, HPC ve Bilim / Mühendislik Uygulamaları) arasında her şeyi göz önünde bulundurarak. Hepsiyle ilgileniyorum ama Math'dan uzak durdum çünkü kanıtları ve kağıtları iyi takip edemedim. Şimdi Gerçek Analiz, Doğrusal Cebir ve Sayısal Yöntemlere odaklanarak kendimi her şeye hazırlayacağım. Danışmanım, kişinin anladığı saf matematik seviyesinin, uygulanan herhangi bir alanın takdir seviyesi ile doğru orantılı olduğunu söyledi. Yıllardır Engg'den sonra hesabı okuduğum için, aforizmaya ikna oldum.
tahkikat

6

Hem aeismail hem de Oxberry ile hemfikirim. Bir cevap yazmaya karar verdim, çünkü geçen sene cevap bulmaya çalıştığım soruların aynısını görüyorsunuz. Ayrıca makine mühendisliği (ve nefret, özellikle katı mekanik) konusunda uzmanlaştım, CFD veya optimizasyonda sayısal yöntemlerle çalışmak için çok zaman harcadım. Şimdi yüksek lisansımı Uygulamalı Matematik ve Hesaplamalı Bilimler alanında yapıyorum. Benim bakış açımdan önce gelecekte ne yapmak istediğinize karar vermeniz gerekiyor. Sayısal yöntemlerin modellenmesine veya geliştirilmesine gitmek istiyorsanız, kesinlikle matematiğe doğru gitmelisiniz. Derin temeli bilmeden iki yıl Sonlu Hacim ve Sonlu Elemanlar yöntemleri ile çalıştım ve şimdi uygulamalı matematik dersleri aldığım için bu benim için çok daha mantıklı. Yöntemlerin tam olarak nasıl çalıştığını anlıyorum ve artık sadece her şeyi deneyerek körü körüne yürümiyorum. Çok zaman ve çaba tasarrufu sağlar. Ancak, yazılım ve ilgili konular geliştirmek istediğinize karar verirseniz, HPC bölümüne odaklanmak isteyebilirsiniz. Deneyimlerime göre, çok sayıda sayısal uygulama için optimize edilmiş ve kullanıma hazır birçok paket var. Bu yüzden kendi yazılımımı geliştirmek için çok fazla zaman harcamak benim için en iyi fikir olmayacak, bu yüzden matematik bölümünde daha fazla çalışmaya karar verdim.


1

Bir teori / uygulama ikilemine inanmıyorum, ancak alanlara tamamen bağlam dışı olmayan bir şekilde yaklaşmak da önemlidir. Teoriyi anlamak Sanırım betondan sonra betona odaklanmanıza (yani bir diğerine karşı belirli bir uygulamaya) sahip olmanızı engellediği için çok değerli olan sorun hakkında genel bir sezgi sağlar ve büyük resme bakmanıza izin verir. Ancak bu anlayış bir boşluktan ortaya çıkmaz ve bu seviyede BAŞLAYAMAZSINIZ beynin işleyişi bu değildir. Hiç ağaç görmeden orman kavramına varamazsınız!

Bu, teorinin bu soruda da itaatkâr bir rol oynadığı anlamına gelmez. Teorik anlayışın bir problem sınıfını düşünürken önemli bir zihinsel ekonomiye sahip olduğunu söylemekle birlikte, onu tahrik eden betonlar olmadan var olamaz (en azından hesaplama teorilerinde).

Sorunuzu cevaplamak için: İlgilendiğiniz tek şey uygulama ise, sonuç budur, ancak bu uygulamayı geliştirmek / değiştirmek değil, teori bu kadar önemli olmayacaktır. Bununla birlikte, kendinizinkini üretmek istiyorsanız, teoriyi daha iyi anlayanlarla rekabetçi bir dezavantajınız vardır. Tabii ki yıllar içinde kendi daha iyi olur kendi üretmek sürece :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.