Şu anda (çoğunlukla) araştırmada C++ kullanılarak hesaplamalı yoğun ekonometri için çalışıyorum. Daha üretken bir ortama geçmek istiyorum. D ümit verici geliyor, ama belki de şu anda tam üretken olmam için yeterince olgun değil. Son zamanlarda C# ve NMath kütüphanesine rastladım. Çok etkileyici görünüyor. Bunları böyle bir amaçla kullanan var mı? Deneyimleriniz neler? Verimliliğimi genel olarak arttırırsa, çalışma süresi hızından vazgeçmeye razıyım (görev süresi geçiyor). Düşünceleriniz ve önerileriniz takdir edildi!C# ve Hesaplamalı Finans ve Ekonometri için NMath
cevap
Centerspace's NMath ürününe atıfta bulunduğunu mu sanıyorsunuz?
Kısa bir süre önce bunları bir üretim uygulamasında kullanmaya başladık; Şimdiye kadar çok hafif olsa da (gaz girdisi GJ ile MW arasındaki gaz girdisi arasındaki ilişkiyi belirlemek için lineer bir regresyon yapılması, teknik olarak bu bir NMath Stats özelliğidir). Bugüne kadar kullanmaktan mutluluk duyuyor ve finans departmanımızın faturalarını işleme koymasını beklerken, destek süreleri dolmuş bir değerlendirme lisansına cevap vermede çok hızlıydı.
Performans söz konusu olduğunda, Intel Math Kernel Library numarasını kullanabilir, bu nedenle performans iyi olmalıdır; Sınırlı kullanımımız için herhangi bir olumsuz performans etkisine neden olmamıştır.
Başvurumuzda başka bir yerde kütüphaneyi kullanmayı uygun buluyorum!
Bir ekonomi şirketi (EMSI) için çalışıyorum ve yüksek performanslı hesaplama gereksinimlerimizin çoğunda D kullanıyoruz. Doğal hız ve verim kritiktir, ancak C'den daha yüksek düzeyde bir soyutlama ve C++ (IMHO) 'dan daha az sayıda yakalama sağlar. Gerçek zamanlı I/O modellerinin arkasındaki devasa matris işlemlerine güç sağlamak için kullandığımız BLAS, Intel MKL vb. Ile arayüz yapmak çok kolay. Çoğu zaman göz ardı edilen D verimlilik artırımı hakkında güzel bir şey, şaşırtıcı derecede hızlı bir derleyicidir - Çok büyük projelerde bile asla ilerlemeyen yapılarla uğraşmam.
Çok ilginç. Optimize ediciler, rasgele sayı üreteçleri, istatistiksel dağılımlar için neler yapıyorsunuz? Kendininkini yuvarla? D'ye çok dikkatli bir gözle bakıyordum.Hesaplamalı ekonometristler için çok fazla söz veriyor gibi görünüyor. Deneyimlerinizi daha çok duymak isterim. – TJB
Şimdiye kadar, esas olarak kendi ya da kullanılmış mevcut C lib'leri yuvarladık (oldukça iyi bir FOSS ürünü var ve D, C'nin ABI'sını kullanıyor). Öncelikle çok büyük miktarlarda zor verilerle çalışıyoruz (bu bizim bildiğimiz şey) ve teorik çalışmalarımızın çoğu doğrudan uygulanmaktadır, bu yüzden belki de bizim deneyimlerimiz aradığınızdan oldukça farklıdır. –
D hakkında daha fazla bilgi edindim. D'yi EMSI'de nasıl kullandığınızla çok ilgileniyorum. Özel olarak sohbet etmek ister misiniz? Çok teşekkürler! – TJB
Benim önerim ILNumerics yönüne gider. Çevresindeki en hızlı kütüphanelerden biri gibi görünüyor. Birkaç ay önce ticari faaliyete geçti, ancak yıllardan beri, eskiden açık kaynak kütüphanesi olarak kullanıyordum.
Müşterilere bir uygulama dağıtmak için kitlesel Matlab kodlarını dönüştürmek zorundaydık. ILNumerics, Matlab ile aynı sözdizimini kullandığı için ilk (ve temelde tek) seçimimizdi. Ayrıca, dizi sınıfları da bizim için önemli olan n boyutlarını ve çok fazla alt dizgeyi ele alabilir. Güzel bir kod örneği here bulacaksınız. Benim düşünceme göre, tek dezavantaj: Müfettişlik için özel fonksiyonların eksikliği ve sadece temel istatistikler uygulanmaktadır. Bu yüzden kendi algoritmanızı (std, cov, var, mean, abs vb. Kullanarak) oluşturmak ve ardından HILO-herhangi bir göstergenin kutusundan çıkarılması çok uygundur.
Bunu kontrol edeceğim. Teşekkürler! – TJB
- 1. Google Finans -
- 2. Google Finans tarzı kontrolü?
- 3. C/C++ ve LibSerial
- 4. C# ve #
- 5. C# ve C++ Kitaplığı
- 6. Google Finans API'sından JSON'un önde gelen işaretleri,
- 7. dönüştürme Mat ve C/C++
- 8. 2. türev için otomatik farklılaşma uygulanması: hesaplamalı grafiğin geçişi için algoritma?
- 9. getter ve c sınıfı sınıf için setter #
- 10. C# SSH ve Telnet için Kitaplık
- 11. C# sürükle ve bırak dosyaları oluşturmak için
- 12. typedef ve işaretçiyi işlev göstermek için C
- 13. Android ve performansı için Pure C++ uygulaması
- 14. C# ve CLSCompliant özniteliği için ANTLR
- 15. Quantmod'teki yahoo finans işaretleyicilerindeki tireler nasıl kullanılır?
- 16. Karışık C++ Diziler ve C#
- 17. C++, C# ve ruby'den c dll çağrılıyor
- 18. NSData'yı base64encoded ve C#
- 19. C ve C++ için en iyi duruma getirme araçları
- 20. Farklı derleyici için farklı çıktı - C ve C++
- 21. C programlamayı C olarak çalıştırın ve bitirmek için beklemeyin
- 22. C ve C++ için en iyi hata ayıklama aracı
- 23. C#: [], çift [] [] ve çift
- 24. OpenCV ve C++
- 25. C++ ve Rcpp
- 26. C++ ve SOAP
- 27. C# ve WPF
- 28. Yangın ve C#
- 29. "SystemFolder" WIX ve C#
- 30. sprintf ve C
İlginç! Dizi özelliklerini önerebiliyor musunuz? Sıkı döngülerde çok fazla büyük matris ve 3 boyutlu dizi manipülasyonumuz var. Yıllar önce kütüphanelerini test ediyordum ve bu sırada hafıza patlıyordu ve dizi özellikleri gerçekten yoktu? Acaba bu durum o zamandan beri gelişir mi? – user492238
@James: Girişiniz için teşekkürler. Sanırım bir deneyeceğim ve nasıl sevdiğimi göreceğim. Sizin için iyi çalıştığını bilmek güzel. Çok umut verici geliyor. – TJB
Çalışma zamanı performansında herhangi bir düşüş beklememelisiniz. Ürünümüz James'in dediği gibi Intel'in Math Kernel Kütüphanesi'ni kullanıyor ve rakiplerimizi de kullanıyor. Herhangi bir önemli hesaplamalar için yürütme süresi büyük ölçüde MKL'nin içinde. Doğrusal regresyon fonksiyonu, LAPACK (MKL) kullanarak ayrıştırma yapmaktan sonuçlanır. –