Sayısal kodlar için sonuç veritabanları


17

Sayısal yöntem literatüründe, birçok araştırma makalesi yeni bir algoritmik varyasyonun açıklamasından, yeni yöntemi bir veya iki mevcut yöntemle karşılaştıran birkaç test probleminden oluşmaktadır. Bu belirlemeyi zorlaştırır

  • Yeni yöntemin ilgi konusu diğer sorunlarda nasıl performans göstereceği
  • Yeni yöntemin mevcut diğer yöntemlerle nasıl karşılaştırılacağı

Tabii ki, bu soruların her ikisi de yeni yöntemi benimsemeye karar verip vermediği için önemlidir. Bu durumu iyileştirmek için, mümkünse, yöntemleriyle çok sayıda test problemi ( bu soruya bakın ) çalıştırmalarını sağlamak ve sonuçları diğer yöntemlerle karşılaştırmak için bir veritabanında kataloglamak istenir . Bir bilim adamı veya mühendis daha sonra veritabanını sorgulayabilir, belki de onlar için hangi çözüm / sorun özelliklerinin (doğruluk, verimlilik, nitel özellikler vb.) En önemli olduğunu belirtebilir ve veritabanındaki tüm yöntemlerin performansının nicel bir karşılaştırmasını alabilir.

Bu fikrin uygulanmasında birçok zorluğun olduğunun farkındayım (esas olarak: insanların tüm bu problemleri gerçekten yürütmelerini sağlamak ve hesaplama maliyetini ölçmek). Ama sorum şu: Böyle bir sonuç veritabanı var mı? (örneğin belirli bir alt alanda) veya böyle bir yaklaşım herhangi bir yerde uygulandı mı?

Şimdiye kadar gönderilen cevapların her ikisi de sorun veritabanlarıyla ilgilidir. Sonuçların veritabanlarını soruyorum.

Yanıtlar:


9

Belirttiğiniz kriterler arasında, bildiğim en yakın projenin Florida Üniversitesi seyrek matris koleksiyonu olacağını düşünüyorum . İnsanlar bu veri kümesini seyrek lineer cebir çözücüleri karşılaştırmak için rutin olarak kullanırlar ve uygulamaya, sıfır olmayan sayılara, matris boyutlarına ve benzerlerine göre gerçekten güzel bir web arayüzü, MATLAB arayüzü veya Java GUI ile filtreleyebilirsiniz. 4 - 8 doğrusal cebir çözücü ile çözücü çalışma süresi karşılaştırmaları ile birlikte kağıtlarda listelenen bu sorunların tablolarını gördüm.

Bu tür veritabanlarının derlenmesinin yararlı olacağına katılıyorum ve ayrıca, veri derlemek için UF seyrek matris toplama yaklaşımının mükemmel olduğunu ve bu fikri gerçekleştirmeyi düşünen herkes için harika bir başlangıç ​​yapacağını düşünüyorum. Pratikte tüm problemleri yürütmek, tüm çözücülere erişebildiğiniz sürece büyük bir zorluk gibi görünmüyor; Çözücülere ve gerekli tüm yazılımların yüklü olduğu güvenilir bir standart referans makinesine erişiminiz varsa, bir komut dosyası çalıştırma ve veri toplama meselesi olmalıdır. Aklımdaki zorluk, insanların açık kaynaklı olmasa bile size yazılımlarını vermelerini sağlamak olacaktır. Ticari ise, satın alabilir, hatta insanların yazılımı bağışlamasını sağlayabilirsiniz,COIN-OR projesi. Ancak ticari veya açık kaynak olmayan bir araştırma yazılımı ise, insanları çabaya girmeye ikna etmeniz gerekir ve yazılımlarını adil bir şekilde değerlendirmek için üçüncü bir tarafa güvenmeyebilirler.

Ayrıca optimizasyonda indirilebilir problem veritabanları ( CUTEr akla geliyor) ve optimizasyon için test problemleri kitapları olduğunu da biliyorum . İnsanları gördüm (örneğin, özellikle AIChE 2011'de Ruth Misener tarafından yapılan bir konuşmayı düşünüyorum), optimizasyon çözücülerini sunumlardaki sorun veritabanlarındaki diğer çözücülerle karşılaştırın; Nelerin herkese açık olarak yayınlandığından emin değilim. Büyük ölçekte karşılaştırma için bir optimizasyon geleneği olduğunu biliyorum (birçok çözücü, birçok sorun); Sadece çevrimiçi bir veritabanı olduğunu sanmıyorum.

Önemli olduğunu düşündüğüm bir diğer şey, burada yöntemler ve yazılım uygulamaları arasında ayrım yapmamız.. Bilimsel hesaplamada hepimiz, hesaplama karmaşıklığı metrikleri veya çeşitli sorunlarla ilgili deneyimlerimiz temelinde hangi yöntemlerin daha hızlı veya daha yavaş olduğu hakkında konuşuruz. Bununla birlikte, hesaplama zamanını nicel olarak ölçmeye gelince, belirli bir algoritmada FLOP sayısını saymadıkça, algoritmayı yazılımda uygulamak ve ardından performansı bir şekilde ölçmek gerekir (bellek kullanımı, duvar saati yürütme zamanı, vb.) .). Hesaplama karmaşıklığı veya FLOP sayılarına bakarken bir yöntemin performansını değerlendirmek mantıklıdır, çünkü bu tür şeyleri ölçmek için bir uygulamaya ihtiyacımız yoktur, ancak gerçek duvar saati çalışma süreleriyle ilgilendiğimiz an, yöntemler hakkında konuşmak sadece soyut, konuşma diline özgü bir araç olarak kullanışlıdır. (Örneğin,

Yöntemler ve yazılım arasındaki bu ayrımı gündeme getirdim çünkü böyle bir veritabanında, zaman içinde yazılımdaki gelişmeyi izleme olasılığını da görebiliyordum. Örneğin, örneğin, PETSc veya PyCLAW gibi bir şeyle veya hangi yazılım test ediliyorsa, yazılımdaki yükseltmelerden hangi sorunların olumlu (veya olumsuz!) Etkilendiğini görmek ilginç olacaktır. Bu, kodlarını yükseltmek için para ve insan gücü açısından herhangi bir potansiyel maliyete değip değmeyeceğine karar vermeye çalışan araştırmacılar için yararlı olabilir. Böyle bir ayrımın önemli olmasının bir başka nedeni, iyi bir yöntemin kötü bir şekilde uygulanabilmesidir; Bence bu olasılık insanların bazen araştırma kodlarını paylaşmalarına olan suskunluğa katkıda bulunuyor.

Sanırım bu fikir ne olursa olsun (ve umarım bir şey gelir ve doktora programımdan sonra katkıda bulunmaya istekli olur), yazılım ve yöntemler arasındaki bu ayrımı vurgulamak önemlidir, çünkü test problemleri yürütüyorsak, yazılım için sonuçlar yayınlayacak.


2
Yorumlarınızı çok beğendim ve önemli bir noktaya değindiniz. Eminim bildiğiniz gibi, verdiğiniz bağlantılar sonuçların değil sorunların veritabanlarına yöneliktir.
David Ketcheson

Bunlar bulabildiğim en yakın şeylerdi. Sonuç veritabanları için uğraşmaya çalıştım, çünkü bence gerçekten önemli bir fikir ortaya koyuyorsunuz, ancak bulamadım. Belki de bu yeni ve önemli bir projedir?
Geoff Oxberry

Teşekkürler; Kabul ediyorum ve bunlar sizin söylediğiniz gibi "mevcut en yakın yaklaşımlar" olarak kullanışlıdır. Gerçekten bunu (daha fazla güvenilirlik sağlayacak bazılarıyla) yeni bir proje olarak görüyorum. İlgilendiğiniz için çok mutluyum! SE tartışmaya açık olduğu için başka bir yerde tartışabiliriz.
David Ketcheson

4

Sayısal olarak hesaplamak için "zor" integrallerin bir listesini oluşturma girişimi olmuştur (Walter Gautschi, Robert Piessens ve diğerlerinin makalelerine bakınız) ancak resmi bir veritabanı yoktur.

ODE'ler alanında, İlk Değer Problemleri için bir test seti olan IVP test seti vardır .


Aslında, hesaplanan sonuçların veritabanlarını soruyorum, problemlerin veritabanlarını değil.
David Ketcheson

1
@DavidKetcheson Sonuçların kendiniz hesaplanmasını otomatikleştirmek için sürücü kodu içerir.
Jed Brown

Harika! Her ne kadar sonuçların saklandığı gerçek bir veritabanı görmek isterim (buna ek olarak, bunları yeniden hesaplama yeteneğine ek olarak), bu benim düşündüğüme en yakın şey.
David Ketcheson

3

Ben böyle bir veritabanına aşina değilim, ama yararlı bir şekilde tanımlamak çok zor olacağını düşünüyorum. Bence daha iyi bir sistem, kodu çalıştırılabilir bir formda serbest bırakmaktır, böylece kullanıcı istediği kadar kapsamlı bir şekilde sınamayı genişletebilir. Topluluk depoları açısından, GertVdE'nin bahsettiği IVP test paketi , test sorunları üzerinde yayınlanmış birkaç ODE / DAE çözücüsünü çalıştırmak için sürücü kodu da içerir. Yayınlarımda, çıktı verilerini analiz etmek ve kağıtta görünen grafikleri ve tabloları oluşturmak için kullanılan kodu ve tüm komut dosyalarını serbest bırakmaya çalışıyorum.


1
Küçük kelime oyunu: bu bir cevaptan çok bir yorumdur. Yine de eleştirel düşünceyi takdir ediyorum. İnsanların her ikisini de yaptığını görmek istiyorum. Sonuçlarınızı benimkine karşı çizebilmem için neden kodunuzu yüklemem ve çalıştırmam gerekiyor? Ve sonra doğru seçenekleri belirlemediğimi iddia edebilirsiniz? Her neyse, ben (tipik araştırmacı anlamına gelir) bunu yapmayacağım çünkü çok fazla iş var. Ama tek yapmam gereken bir veri dosyasında okumak olsaydı, istekli olabilirdim.
David Ketcheson

1

Benchmark Problemleri için Hesaplamalı Aeroakustik Çalıştayı, akustik problemler için de benzer bir hedefe sahiptir. Öncelikle bir dizi kıyaslama problemini vaktinden önce sunarlar ve insanların bunları kendi yöntemlerini kullanarak çözmelerini ve sonuçları karşılaştırmasını sağlarlar. Örneğin, dördüncü toplantının işlemleri şu şekildedir: http://www.archive.org/details/nasa_techdoc_20040182258

Her ne kadar, söyleyebileceğimden, kodlarının birbirlerine karşı ne kadar verimli olduğunu karşılaştırmıyorlarsa da, esas olarak doğrulukta görünüyorlar.


İlginç! Bir çözüm veritabanı var mı? Veya sonuçları tam olarak nasıl karşılaştırıyorlar?
David Ketcheson

"Veritabanı" gönderdiğim raporda. Makalenin sonunda "Çözüm Karşılaştırma" başlıklı bir bölüm var. Bunun için sadece dört toplantı yapıldı ve sonuncusu 2004'teydi. Keşke bu tür şeyleri sizin önerdiğiniz gibi çevrimiçi hale getirmek için daha fazla çaba gösterilmesini dilerdim.
James Custer

1

Deprem modellemesinde bu tür çabaların bir kısmı olmuştur. Akla gelenler dinamik kopma simülasyon projesi ve kaynak inversiyon projesidir (http://eqsource.webfactional.com/wiki/). Her ikisi de çözmek için fiziksel problemler sağlar ve kullanılan yöntemlerle ilgili agnostiktir (bir düzeyde). Gerçekten bu projeler, her sayısal pdes yöntemi için genel bir test problemleri kümesi değil, etki alanına özgü modelcilerin birbirleriyle karşılaştırmasını sağlamakla ilgilidir. Ancak diğer sonuçlarla karşılaştırabilirsiniz ve bu birçok kodda birçok sorun ortaya çıkarmıştır.

Bakmak için bir olasılık , sismik görüntüleme dünyasında geliştirilen ancak oldukça genel bir amaç olduğunu iddia eden madagaskar projesi olacaktır.


Madagaskar mükemmel bir örnek. Teşekkür ederim!
Jack Poulson
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.