Trong số các tiêu chí bạn đã chỉ định, tôi nghĩ rằng dự án gần nhất mà tôi biết sẽ là bộ sưu tập ma trận thưa thớt của Đại học Florida . Mọi người thường sử dụng bộ dữ liệu này để so sánh các bộ giải đại số tuyến tính thưa thớt và bạn có thể lọc theo ứng dụng, số lượng khác không, kích thước của ma trận, v.v. với giao diện web thực sự đẹp, giao diện MATLAB hoặc GUI Java. Tôi đã thấy các bảng về những vấn đề này được liệt kê trong các bài báo cùng với việc so sánh thời gian chạy của người giải với 4 đến 8 người giải đại số tuyến tính.
Tôi đồng ý rằng sẽ rất hữu ích khi biên dịch các cơ sở dữ liệu như vậy và hơn nữa, tôi nghĩ rằng phương pháp thu thập ma trận thưa thớt của UF để biên dịch dữ liệu là một cách tuyệt vời và sẽ là khởi đầu tuyệt vời cho bất cứ ai nghĩ về việc hiện thực hóa ý tưởng này. Thực hiện tất cả các vấn đề, trong thực tế, dường như không phải là một khó khăn lớn miễn là bạn có thể có quyền truy cập vào tất cả các người giải quyết; nếu bạn có quyền truy cập vào bộ giải và một máy tham chiếu tiêu chuẩn đáng tin cậy với tất cả các phần mềm cần thiết được cài đặt, thì đó là vấn đề chạy tập lệnh và thu thập dữ liệu. Khó khăn, trong suy nghĩ của tôi, sẽ khiến mọi người cung cấp cho bạn phần mềm của họ, nếu đó không phải là nguồn mở. Nếu nó là thương mại, bạn có thể mua nó, hoặc thậm chí có thể khiến mọi người quyên góp phần mềm,Dự án COIN-OR . Nhưng nếu đó là phần mềm nghiên cứu không phải là nguồn mở hay thương mại, thì bạn cần thuyết phục mọi người mua vào nỗ lực đó và họ có thể không tin tưởng một bên thứ ba đánh giá phần mềm của họ một cách công bằng.
Tôi cũng biết rằng trong tối ưu hóa, có các cơ sở dữ liệu về các vấn đề có thể tải xuống ( CUTEr
xuất hiện) và sách về các vấn đề kiểm tra để tối ưu hóa. Tôi đã thấy mọi người (ví dụ, tôi đặc biệt nghĩ về một cuộc nói chuyện của Ruth Misener tại AIChE 2011) so sánh người giải quyết tối ưu hóa của họ với những người giải quyết vấn đề khác về cơ sở dữ liệu trong các bài thuyết trình; Tôi không chắc chắn những gì được phát hành công khai. Tôi biết rằng có một truyền thống tối ưu hóa để so sánh trên quy mô lớn (nhiều người giải quyết, nhiều vấn đề); Tôi chỉ không nghĩ rằng có sẵn một cơ sở dữ liệu trực tuyến.
Một điều khác mà tôi nghĩ là quan trọng là chúng ta phân biệt ở đây giữa các phương thức và triển khai phần mềm. Trong điện toán khoa học, tất cả chúng ta đều nói về phương pháp nào nhanh hơn hoặc chậm hơn dựa trên những thứ như số liệu độ phức tạp tính toán hoặc kinh nghiệm của chúng tôi với các vấn đề khác nhau. Tuy nhiên, khi nói đến việc đo thời gian tính toán một cách định lượng, trừ khi người ta đếm số lượng FLOP trong một thuật toán cụ thể, người ta phải thực hiện thuật toán trong phần mềm và sau đó đo hiệu suất theo cách nào đó (sử dụng bộ nhớ, thời gian thực hiện của đồng hồ treo tường, v.v. .). Thật hợp lý khi đánh giá hiệu suất của một phương pháp khi xem xét độ phức tạp tính toán hoặc số FLOP, bởi vì chúng ta không cần thực hiện để đo lường những điều đó, nhưng thời điểm chúng ta quan tâm đến thời gian chạy đồng hồ treo tường thực tế, nói về các phương pháp là chỉ hữu ích như một thiết bị trừu tượng, thông tục. (Ví dụ,
Tôi đưa ra sự khác biệt này giữa các phương pháp và phần mềm bởi vì trong cơ sở dữ liệu như vậy, tôi cũng có thể thấy khả năng theo dõi sự cải tiến của phần mềm theo thời gian. Vì vậy, ví dụ, với một cái gì đó như, như PETSc, hoặc PyCLAW, hoặc bất kỳ phần mềm nào đang được thử nghiệm, sẽ rất thú vị khi xem những vấn đề nào bị ảnh hưởng tích cực (hoặc tiêu cực!) Khi nâng cấp trong phần mềm. Điều này có thể hữu ích cho các nhà nghiên cứu cố gắng quyết định xem nó có xứng đáng với bất kỳ chi phí tiềm năng nào về tiền bạc và nhân lực để nâng cấp mã của họ hay không. Một lý do khác để phân biệt như vậy là quan trọng là bởi vì một phương pháp tốt có thể được thực hiện tồi; Tôi nghĩ rằng khả năng này góp phần vào sự thận trọng mà mọi người đôi khi có trong việc chia sẻ mã nghiên cứu của họ.
Tôi nghĩ bất cứ ý tưởng nào xuất hiện (và tôi hy vọng điều gì đó xuất hiện và sẽ sẵn sàng đóng góp sau tiến sĩ), điều quan trọng là phải nhấn mạnh sự khác biệt giữa phần mềm và phương pháp, bởi vì nếu chúng tôi đang chạy thử nghiệm, chúng tôi sẽ sẽ được đăng kết quả cho phần mềm.