Python vs FORTRAN


17

Hangisi daha iyi: FORTRAN veya Python? Sanırım her iki durumda da Gnuplot'a ihtiyacınız var, değil mi?

Şu anda bir Windows makinesinde çalışıyorum.

Monte-Carlo simülasyonları, sayısal entegrasyon ve farklılaşma, moleküler dinamikler gibi fizik problemlerine sayısal çözümler elde etmek için kullanmak istiyorum.

Hesaplamalı fizik üzerine hem FORTRAN'ı (77 inanıyorum) hem de Python'u tanıtan bir kurs gördüm. Birinden başlayıp diğerini öğrenmeyi planlıyorum, ancak hangi geçişin en kolay olabileceğini bilmiyorum.

Ayrıca hangi derleyicileri önerirsiniz?

Benim için temel soru şudur: hangisi öğrenmesi en kolay, hangisi en hızlı, hangisi en kullanıcı dostu ve en önemlisi hangisinin en çok kullanıldığı (yani bu 4'ün karşılaştırması)? Bunun yanında, kullanımda en yaygın (ücretsiz veya ücretli) derleyiciler nelerdir? Şu anda eski bir dizüstü bilgisayarı (erken Intel çift çekirdekli) Linux'a dönüştürmeyi düşünüyorum; umarım bu yeterince hızlıdır.

Şimdiye kadar cevaplar için çok teşekkürler! Aradığım şeyle uyumlu olan cevaplar LKlevin ve SAAD.

C ++, Maple'ın temellerini biliyorum ve MATLAB ve Mathematica9'da ustalaşıyorum, eğer herhangi bir yardım varsa.


12
Gerçekten daha spesifik olmalısınız; "hangisi daha iyi: çekiç mi yoksa tornavida mı?" Bir göz atın scicomp.stackexchange.com/questions/11006 (yerine Fortran'ın C ++ hakkında, ama çoğu noktaları eşit olarak uygulanmalıdır).
Christian Clason

@ChristianClason, fuar noktası: p
Nick

Düzenlemeniz için teşekkürler, ancak bu gerçekten işleri daraltmıyor. Yukarıda bağlantılı soruya cevap olarak verilenden daha fazla ne söylenebileceğinden emin değilim.
Christian Clason

2
Ayrıca, derleyiciler hakkındaki soru ayrı bir konudur ve ayrı bir soru olmalıdır. (Aksi takdirde Fortran'ı bilen ancak Python ile ilgilenmeyen insanlar görmeyecektir.) Bazı öneriler zaten scicomp.stackexchange.com/questions/8617 adresinde verilmiştir .
Christian Clason

1
Matlab'ı biliyorsanız, performansınızı neredeyse her zaman yerleşik matlab rutinlerinden daha kötü olacak olsa da, çoğu sayısal algoritmayı orada uygulayarak öğrenebilirsiniz. Buradan performans ihtiyaçlarınızın ne olduğuna karar verebilir ve daha verimli bir kütüphane / dile geçebilirsiniz.
Godric Seer

Yanıtlar:


29

Öğrenme kolaylığı

Python ve Fortran'ın her ikisi de nispeten öğrenmesi kolay dillerdir. Muhtemelen iyi Python öğrenme materyalleri bulmak iyi Fortran öğrenme materyallerinden daha kolaydır çünkü Python daha yaygın olarak kullanılmaktadır ve Fortran şu anda sayısal hesaplama için bir "uzmanlık" dili olarak kabul edilmektedir.

Python'dan Fortran'a geçişin daha kolay olacağına inanıyorum. Python yorumlanmış bir dildir, bu nedenle ilk programınızı çalıştırmak için gereken adım sayısı daha azdır (yorumlayıcıyı açın, yazınprint("Hello, world!") Fortran için , istemde yazın) ("Merhaba dünya" programı yazın, derleyin, çalıştırın). Ayrıca Python'da nesneye yönelik stili öğretmek için Fortran'dan daha iyi materyaller olduğunu ve GitHub'da Fortran kodundan daha fazla Python kodu olduğunu düşünüyorum.

Windows'ta çalışmaya başlama

Python'u kurmak daha az acı verici olmalı; kullanılabilir Windows dağıtımları vardır. Anaconda veya Enthought Canopy gibi bilimsel bir dağıtım kullanmanızı öneririm. Aslında bir derleyici yoktur; tercüman bu rolü üstlenir. CPython tabanlı bir tercüman kullanmak isteyeceksiniz, çünkü daha fazla sayısal kütüphane mevcut ve C, C ++ ve Fortran ile güzel bir şekilde birlikte çalışıyor. Diğer tercüman uygulamaları Jython ve PyPy'dir.

Bir Windows makinesinde, bir Fortran derleyicisinin yüklenmesi sinir bozucu olacaktır. Tipik komut satırı derleyicileri gfortran, ifort (Intel'den; kişisel kullanım için ücretsiz, aksi takdirde paraya mal olur) ve pgfortran (PGI'den; ücretsiz deneme sürümleri, aksi takdirde paraya mal olur) gibi programlardır. Bu derleyicileri yüklemek için Cygwin veya MinGW gibi bir çeşit UNIX / POSIX tipi uyumluluk katmanı yüklemeniz gerekebilir. Çalışmak için bir acı buldum, ancak bazı insanlar bu iş akışını seviyor. Visual Fortran gibi bir GUI içeren bir derleyici de yükleyebilirsiniz (yine lisans için ödeme yapmanız gerekir).

Linux'ta Python ve derleyicileri kurmak daha kolay olacaktır; Yine de Anaconda veya Enthought Canopy'yi Python dağıtımı olarak kurarım.

Hız: verimlilik ve performans dengelemesi

Python (veya MATLAB, Mathematica, Maple veya herhangi bir yorumlanmış dil) kullanırken, verimlilik için performanstan vazgeçersiniz. Fortran (veya C ++, C veya herhangi bir derlenmiş dil) ile karşılaştırıldığında, aynı görevi gerçekleştirmek için daha az kod satırı yazacaksınız, bu da genellikle çalışan bir çözüm bulmanızın daha az zaman alacağı anlamına gelir.

Python'u kullanmak için etkili performans cezası değişiklik gösterir ve hesaplamalı yoğun görevleri derlenmiş dillere devrederek hafifletilir. MATLAB benzer bir şey yapar. MATLAB'de bir matris çarpımı yaptığınızda, BLAS'ı çağırır; performans cezası neredeyse sıfırdır ve yüksek performansı elde etmek için herhangi bir Fortran, C veya C ++ yazmak zorunda kalmadınız. Python'da da benzer bir durum var. Kütüphaneleri (örneğin, NumPy, SciPy, petsc4py, FEniCS, PyClaw'dan dolfin) kullanabiliyorsanız, tüm kodlarınızı Python'a yazabilir ve iyi bir performans elde edebilirsiniz (belki% 10-40 ceza) Yoğun bölümler, hızlı derlenen dil kitaplıklarına yapılan çağrılardır. Ancak, her şeyi saf Python'a yazacak olsaydınız, performans cezası 100-1000x'lik bir faktör olurdu. Python kullanmak istiyorsanız ve bir özel dahil etmek zorunda kaldıysanız, Hesaplama açısından yoğun bir rutin olarak, bu bölümü C, C ++ veya Fortran gibi derlenmiş bir dilde yazıp Python arayüzü ile silmeniz daha iyi olur. Bu işlemi kolaylaştıran kütüphaneler (Cython ve f2py gibi) ve size yardımcı olacak öğreticiler; genellikle zahmetli değildir.

Kullanım kapsamı

Python genel olarak genel amaçlı bir dil olarak daha yaygın olarak kullanılmaktadır. Fortran büyük ölçüde sayısal ve bilimsel hesaplama ile sınırlıdır ve esas olarak bu alandaki kullanıcılar için C ve C ++ ile rekabet etmektedir.

Hesaplamalı bilimde, Python bahsettiğim performans cezaları nedeniyle genellikle derlenmiş dillerle doğrudan rekabet etmez. Sayısal olarak yoğun algoritmaların prototiplenmesi, veri işleme ve görselleştirme gibi yüksek verimlilik ve performansın ikincil bir husus olmasını istediğiniz durumlarda Python'u kullanırsınız. Algoritmanızın ve uygulama tasarımınızın ne olması gerektiği konusunda iyi bir fikriniz olduğunda Fortran'ı (veya başka bir derlenmiş dili) kullanırsınız, kodunuzu yazmak ve hata ayıklamak için daha fazla zaman harcamak istersiniz ve performans çok önemlidir. (Örneğin, performans simülasyon sürecinizde sınırlayıcı bir adımdır veya araştırmanızda önemli bir anahtardır.) Ortak bir strateji, Python ile derlenmiş bir dili karıştırmaktır (genellikle C veya C ++, ancak Fortran da kullanılmıştır), ve derlenmiş dili yalnızca kodun performansa en duyarlı bölümleri için kullanın; geliştirme maliyeti, elbette, bir programın iki dilde yazılması ve hatalarının ayıklanmasının tek bir dilde programdan daha zor olmasıdır.

Paralellik açısından, mevcut MPI standardı (MPI-3) doğal Fortran ve C bağlarına sahiptir. MPI-2 standardında doğal C ++ bağlamaları vardı, ancak MPI-3 içermiyor ve C bağlarını kullanmanız gerekecek. Mpi4py gibi üçüncü taraf MPI bağlamaları vardır. Mpi4py kullandım; iyi çalışır ve kullanımı kolaydır. Büyük ölçekli paralellik için (on binlerce çekirdek) muhtemelen derlenmiş bir dil kullanmak istersiniz, çünkü Python modüllerini dinamik olarak yüklemek gibi şeyler, naif bir şekilde yaparsanız, sizi ölçekte ölçeklendirir. PyClaw geliştiricileri tarafından gösterildiği gibi bu darboğazdan kurtulmanın yolları var, ancak bundan kaçınmak daha basit.

Kişisel görüşler

Yaklaşık 90 yıllık Fortran 90/95 deneyimim var ve ayrıca Fortran 2003'te programladım. Python'da kabaca beş yıllık deneyimim var. Python'u Fortran'ı kullandığımdan çok daha fazla kullanıyorum çünkü açıkçası Python'da daha fazlasını yapıyorum. Yapmam gereken işlerin çoğu büyük süper hesaplama kaynakları gerektirmiyor ve genellikle başka bir dilde yeniden gelişmeye değmez, bu nedenle Python ODE'leri ve PDE'leri çözmek için iyidir. Derlenmiş bir dil kullanmam gerekirse, bu sırayla C, C ++ veya Fortran kullanacağım.

Gördüğüm Fortran kodunun çoğu çirkindi, çünkü bilişimsel bilim topluluğunun çoğu, son 30 yıl içinde yazılım mühendisleri tarafından keşfedilen en iyi uygulamalardan habersiz ya da bunlardan farklı görünüyor. Buna karşılık: Fortran'da iyi bir birim test çerçevesi yoktur. (Karşılaştığım en iyi şey NASA tarafından FUnit'tir ve artık sürdürülmemektedir.) Birkaç iyi Python birimi test çerçevesi, iyi Python dokümantasyon üreteçleri ve genellikle iyi programlama uygulamalarına çok daha iyi örnekler vardır.


Çok güzel ve eksiksiz cevap :). Dün Linux'u python-derleyicisinin mevcut olduğu yere kurdum. Şimdi Linux ve Windows makinem arasında dosya paylaşmanın kolay bir yolu olup olmadığını merak ediyordum. Veri aktarmak için bir çubuk kullandığımda, hem Windows hem de Linux makinesinin de (NFTS biçiminde biçimlendirilmiş) de stich üzerindeki bazı parçaları yok saydığını fark ettim.
Nick

ve son sorunum FAT32 formatı kullanılarak çözüldü (en azından şimdiye kadar).
Nick

Not: FAT32'nin sınırlı bir maksimum dosya boyutu vardır.
meawoppl

@Meawoppl, Linux ve Windows arasında dosya değiştirmenin daha uygun bir yolu var mı? Belki dropbox o zaman? Ayrıca donanım tabanlı bir çözüm var mı?
Nick

Dosyalarınızı 4GB'ın altında tutun: P Gerçekten iyi bir çözüm bilmiyorum. Dosya adı kurallarında da bir aldatıcılık var. M $ oldukça üzgün yüz yapan bir dosya <3.txt adlandırarak bir kez bazı windows desteği kırma hatırlıyorum. Linux'ta NTFS desteği şimdi oldukça iyi, ancak özellikle OSX'te tamamen hareketsiz. Şimdiye kadar bu sorunu çözeceğimizi gerçekten düşündüm.
meawoppl

7

Fortan'dan uzak dururdum ya da gerekirse yeni bir sürüm (2003 yerine 77) kullanırdım. Fortran'da bir çok fizik yazılımı (özellikle Monte Carlo simülasyonları) yazılmıştır, çünkü projelerin asıl 80'lerde başlatılmasıdır.

Bununla birlikte, python ve Fortran çok farklı iki dildir ve ne için kullanılması gerektiği oldukça farklıdır. Python yüksek seviyededir ve genel olarak o kadar hızlı değildir (Fortran & C ++ ile karşılaştırıldığında). Bu kadar kullanılmasının nedeni, çoğu şey için yeterince hızlı olması ve yapmak istediğiniz şeylerin çoğu (ancak hepsi değil) için mükemmel (Fortran destekli) kütüphanelere sahip olmasıdır. Aynı zamanda çizim için mükemmel Matplotlib'e sahiptir (bu nedenle GNUplot'a gerek yoktur) ve pahalı bitleri yazmak için Cython gibi şeyler kullanarak oldukça iyi bir performans elde edebilirsiniz. Ancak Fortran veya C ++ kadar hızlı olmayacak ve paralellik oldukça korkunç, bu da yüksek performanslı sayısal hesaplama için yetersiz kalıyor. Ancak istediğiniz şey Fortran veya C kütüphanelerini arayarak halledilebiliyorsa,

Fortran biraz daha düşük seviyeli bir dildir. Nümerikler için kütüphane desteği şaşırtıcı derecede iyidir, ancak yanlışlıkla kaçınılması gereken hataların bir dizisini yanlışlıkla bir yönteme geçirme gibi bir yığın birikimi veren hala çok düşük seviyededir. Bu hataları bulmak zordur ve onları hiç fark etmeyebilirsiniz. Güven bana, Fortran 77 yazarken epey zaman geçirdim.

C ++ (benim düşünceme göre) mutlu bir ortamdır. Armadillo veya Eigen gibi kütüphanelerle, düşük seviyeli bir performans tarzı elde ederken oldukça yüksek seviyeli bir kodlama stilinden kurtulabilirsiniz.

Performanstan bahsetmişken, şu anda sayısal python için tek gerçek seçenek CPython'dur. WinPython gibi bir şey indirirseniz , ihtiyacınız olan kütüphanelerin çoğunu da alırsınız.

Windows'taki Fortran için işler biraz daha zor. Linux'a geçmenizi ve gfortran veya Intels ifort derleyicisini kullanmanızı tavsiye ederim. Ifort, deneyimimdeki sayısal kod için daha hızlı olma eğilimindedir, ancak yalnızca ticari olmayan, akademik olmayan kullanım için ücretsizdir.

Özetle: Gerçekten ağır simülasyonlar yapmak istemediğiniz sürece, python çok daha kolay bir seçimdir ve çalışmak çok daha zevklidir. Ayrıca çoğu öğrenci düzeyindeki proje için yeterince hızlı olmalıdır. Daha iyi performansa ihtiyacınız varsa, önceden yazılmış olan çok sayıda kütüphaneye bakarak başlayın ve dilinize karar vermesine izin verin. Bir şeyi sıfırdan yazmak zorundaysanız, C ++ kullanın.

Ayrıca bir uyarı: fizikçiler tarafından yazılan çoğu kod oldukça korkunçtur, çünkü fizikçiler programlamanın kolay olduğunu ve matematikte kullanabilecekleri aynı titizliği gerektirmediğini varsayma eğilimindedirler. Bir ders almayı veya programlamayı öğreten bir kitap almayı düşünün.

Feragatname: Fortran 77 tabanlı Monte Carlo kodlarıyla epey zaman geçiren ve şu anda Python'daki tüm veri işlemlerini yapan bir fizikçiyim.


Paralellikle ilgili olarak, araştırmacılar Python'u iyi paralel verimlilikle on binlerce çekirdek üzerinde başarıyla paralel olarak kullandılar. (Örneğin, PyClaw, 65.000+ çekirdek olan tüm Shaheen'de yayınlanmıştır.)
Geoff Oxberry

1
Evet, ancak bence sadece paralel parçanın CPython'un dışında gerçekleşmesini sağlayarak hatırı sayılır bir çaba. PyClaw (PETSc) 'nin paralel kısmı örneğin C ile yazılmıştır. Başka bir alternatif, birden fazla CPython örneği çalıştırmaktır, ancak tam olarak önemsiz değildir.
LKlevin

Çoğu paralel uygulama önemsizdir. "[Python] paralelleşmesi oldukça korkunç, bu da onu yüksek performanslı sayısal hesaplama için yetersiz kılıyor." Hiç kimse saf Python'da yüksek performanslı kod yazmaz. Bu kararın gerekçesinin paralellik ile ilgisi yoktur ve Python'un uygun şekilde kullanıldığı sürece yüksek performanslı hesaplamada arayüz dili olarak kullanımını geçersiz kılmaz. Teklifiniz, paralellik, yüksek performans ve yorumlanmış diller konularını birleştiren saman bir adamdır; Yetkili hiç kimse böyle bir uygulama tasarlayamaz.
Geoff Oxberry

Python'un neredeyse her amaç için mükemmel bir arayüz dili olduğunu kabul ediyorum, ancak bu sorudan uzaklaşıyor. Çoğu uygulama önemsizdir, buradaki sorun, önemsiz olanlar da dahil olmak üzere tüm paralelleştirme vakalarının pythonda önemsiz olmamasıdır. Eğer probleminiz Numpy veya Cython operasyonları açısından iyi tanımlanmışsa, bu bir sıkıntı olabilir. Hayır, bunu 65000 çekirdek kümesinde kullanmazsınız, ancak 100 çekirdekteki 2x performans vuruşunu kabul edebilirsiniz.
LKlevin

Paralellik açısından, Fortran ile ilgili güzel olan şey, MPI / OpenMP'nin yanı sıra, artık standardın bir parçası olan Co-dizileri de olmasıdır. Örneğin, bu jolts.stanford.edu/72/…
stali

7

Python çok yavaş, üst düzey bir dildir. Hızlı sayı kırma için ana hesaplama çekirdeklerini C / C ++ gibi düşük seviyeli dillerde yazmanız gerekir, bu da artık bir değil en az iki dil öğrenmeniz gerektiği anlamına gelir. Ayrıca hata ayıklama / kurulum / bakım vb. İle ilişkili ek baş ağrısı ile de uğraşmanız gerekir.

Modern Fortran (90 ve üstü) neredeyse MATLAB benzeri sözdizimi ile hem hızlı hem de üst düzeydir. Böylece aşağıdakileri yapabilirsiniz:

k=k+matmul(transpose(B),matmul(D,B))*weight(i)*detj

veya

indx(:)=indxmap(indx(:),2)

hatta daha basit

indx=indxmap(indx,2)

vb.

Linux'ta bir dizi ücretsiz Fortran derleyicisi vardır. kullanırım

  1. GCC
  2. Solaris Studio
  3. open64
  4. Intel (yalnızca ticari olmayan kullanım için)

Mac / OSX kullanmıyorum ama ücretsiz PGI var.

Ve lütfen FORTRAN 77'yi kullanmayın. Kimse yeni kod yazmak için kullanmaz.

Yasal Uyarı: Kişisel olarak kendi küçük yapılandırılmamış FE kodumu yazmak için Python'a baktım (PETSc'nin üstünde), ancak iş / kodlama miktarı sadece düz Fortran 95 yazmaktan daha fazlaydı.


1
Buna Fortran 2003'te oldukça ciddi nesne yönelimli programlama yapabileceğinizi ekleyeceğim; örneğin bu kılavuza bakın . Kendi kodumda çok kullanıyorum ve ne yapmak istediğim için çok etkili oldu. Bir çok insan bundan kaçınmanızı söyleyecektir - diyorum ki açık fikirli olun, çok hoşunuza gidebilir. Kesinlikle yaparım.
Daniel Shapero

4

Python , iyi belgelenmiş çok yönlü paketlerle tam simülasyon analizi için çok pratiktir: ızgara oluşturma, dizi hesaplama ve veri yapısı işleme ( numpy ve pandalar ) ve matplotlib ile veri görselleştirme. Büyük sonuç dosyalarına sahip karmaşık simülasyonlar için, verilerin dışa aktarmanın gelişmiş açık kaynaklı uygulamalar (Paraview veya Visit gibi) tarafından okunmasına izin veren VTK paketiyle çalışmak daha da iyidir.

Fortran , bir süredir simülasyonlarda farklı alanlar için tercih edilen dil olmuştur. Kolayca okunabilir (Python kodundan daha az okunabilir). Dizi işleme, dilin güçlü noktalarından biridir, her türlü dizi işleminin tanımlanması ve kullanımında oldukça kolaydır. Hata ayıklama sırasında da kullanışlıdır.

Karşılaştırma performansa düşer : Sadece derlenmiş dilleri (C ++ ve Fortran 90) kullanarak büyük ölçekli hesaplamalar yaptım ama asla Python ile yapmadım. Başka bir iş parçacığı, yorumlanmış ve derlenmiş diller hakkında daha fazla performans bilgisi verir: Bilgisayar programcılığında lisans dersi verirken hangi dili kullanmalıyım?

Şahsen, genel olarak Python ile çalışmayı seviyorum, özellikle post-processing için. Python programlama eğlenceli!


1
Performans neredeyse her zaman önemlidir. Performansa dikkat eksikliği, insanların e-postaları kontrol etmek ve web'de gezinmek için 16Gb RAM ile 8 çekirdeğe ihtiyaç duymalarıdır.
stali

Başkalarının python kodunu okumak zorunda kaldım. Ben py kodu okumak kolay olarak kategorize olmaz.
Biswajit Banerjee

@stali: Tamamen katılıyorum
SAAD

1
@BiswajitBanerjee: Herhangi bir dilde karmaşık kod yazmak imkansız değil, ama en azından herhangi bir işlevin giriş ve çıkışlarını kolayca tanımlayabilirim, burada Fortran korkunç hale geliyor! :)
SAAD

3

Python ile Gnuplot'a ihtiyacınız yoktur, örneğin matplotlib ve / veya IPython kabuğunu kullanabilirsiniz. IPython,% pylab modunda, MATLAB'da bulunan aynı çizim komutlarını sağlayan etkileşimli bir Python kabuğudur.

Bilimsel hesaplamanın önümüzdeki 5+ yıl içinde MATLAB'dan Python'a büyük ölçüde kayması muhtemeldir.


Gnuplot'un bir avantajı, neredeyse her zaman Linux makinelerine (küme / sunucular vb.) Yüklenmiş ve hızlı / kirli viz için çok yararlı olmasıdır. Viz için vi gibidir.
stali

1

MATLAB kullanmaya devam ediyorum, hızlı matematik kütüphaneleri çağırıyor ve Windows'ta FORTRAN'a geçerek performansta çok fazla fark görmeyeceksiniz. Aynı zamanda sonuçların raporlanması ve kodunuzun çalıştırılması için MATLAB'da daha iyi bir altyapıya sahip olacaksınız. MATLAB'ın dezavantajı maliyetidir. FORTRAN temel olarak ücretsizdir ve orada bir sürü ücretsiz kütüphane bulunmaktadır.

FORTRAN'ın öğrenmesi ve programlamaya başlaması çok kolaydır. Temelde isminden de anlaşılacağı gibi: formüllerinizi koda çevirir, okunması ve anlaşılması kolaydır. Bu yüzden fizikçiler eski günlerde onu çok kullandılar. Kodunuzun çoğu fizik problemlerini çözmekle ilgili olduğu sürece (GUI oluşturma veya başka harika şeyler yapma), FORTRAN kodunun bakımı kolay olacaktır.

Python'u yalnızca programlamayı seviyorsanız tavsiye ederim. Şunu düşünün: fizik problemine bir çözümü kodladığınızda, çözümün bir kısmını programlamanın keyfini çıkarır mısınız? Bunu yaparsanız, Python bir seçenektir, çünkü dil MATLAB'lardan çok daha iyidir.


2
MATLAB'dan Fortran'a geçişteki performans farklılıkları hakkındaki açıklamanız genel olarak doğru değil. Fortran, dizilerin doğal olarak iyi bir veri yapısı olduğu kod yazıyorsanız, G / Ç'yi nasıl işlediğiyle yaşayabiliyorsanız ve ihtiyacınız olan kütüphanelere sahipse harikadır. Python'daki sayısal kütüphaneler MATLAB ile işlevsel olarak büyük ölçüde örtüşüyor ve Python arabirimlerini C koduna yazmayı, C koduna MATLAB arabirimlerine göre daha kolay buluyorum.
Geoff Oxberry

Bazen do çok farkı görmek. Son zamanlarda Matlab'dan (dahili olarak bvp6c paketini kullanarak) Fortran 2008'e (dahili olarak bvp_solver paketini kullanarak) bir fizik simülasyon programı yazdım ve algoritmaları değiştirmeme rağmen yürütme süresi geçişten sadece% 1,4'e düştü veya programın genel yapısı. Yakınsama için veri noktası başına ~ 3.5 gün gerektiren bir simülasyon için bu çok belirgin bir gelişmeydi.
jabirali
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.