Şu anda diferansiyel denklemlerin sayısal sistemlerini çözmek için C ve bazı FORTRAN kullanıyorum.
Biraz bu dillerin her ikisi ile bıkmış ama bazı (oldukça) verimli bir kod olması gerekir ... OCaml geçiş düşünüyorum.
Buna değer mi?
Şu anda diferansiyel denklemlerin sayısal sistemlerini çözmek için C ve bazı FORTRAN kullanıyorum.
Biraz bu dillerin her ikisi ile bıkmış ama bazı (oldukça) verimli bir kod olması gerekir ... OCaml geçiş düşünüyorum.
Buna değer mi?
Yanıtlar:
Jane Street Capital'deki insanlar kesinlikle öyle düşünüyor. CMU'da 2009 yılında OCaml kullanımı hakkında bir konuşma yaptılar .
Düşünebileceğim tek dezavantaj, matrislerin birinci sınıf vatandaş olmamasıdır.
Her şeyden önce, sayısal hesaplamalar için, yüksek seviyeli dillerin uzun vadede düşük seviyeli dillerden çok daha kullanışlı olduğu alışılmadık bir ifade yapmak istiyorum . Hava tahminlerinde kullanılan sayısal simülasyonlarda çalışan Fraunhofer Institut'tan bir araştırmacıya gevşekçe alıntı yapmama izin verin.
Son on yılda, CPU'lar 1000 kat daha hızlı, algoritmalar 1000 * 1000 daha hızlı oldu. Bu, günümüzün CPU'larında çalışan algoritmaların, günümüzün CPU'larında çalışan algoritmaların 1000 katına çıkacağı anlamına gelir.
Açıkçası, CPU hızı ve diskler veya RAM gibi algoritmalar olarak dikkate alınacak çok daha fazla parametre var, ancak bu ifade, düşük seviyeli bir dil seçerseniz, yanlış faktöre (1000 yerine) odaklandığınızı anlamamıza yardımcı oluyor. 1000 X 1000).
Elbette, herhangi bir belirli sayısal algoritma göz önüne alındığında, C veya Fortran'ın OCaml veya Common Lisp'i (aslında bu değil) büyük bir faktörle yenmesini bekleyebiliriz. Ama aslında sayısal problemlerle ilgileniyorsanız ve algoritmaları geliştirmeye istekliyseniz, fikirlerinizi yüksek düzeyde ifade etmenizi ve algoritmaları kolayca geliştirmenizi sağlayacak üst düzey bir dil seçmelisiniz.
Bir yan not olarak, OCaml'de sayısal kod yazmayı düşünüyorsanız, OCaml'nin parametreleri işlevlere, satır içi işlevlere ve kutu açmalarını nasıl geçirdiğini kesinlikle bilmelisiniz. Bütün bunlar Xavier Leroy'un notlarında detaylandırılmıştır .
En azından çok iş parçacıklı programlamaya bakana kadar OCaml'ı sevdim.