Programming Libraries for Computational Science and Engineering

Ngày nay, phải nói rằng rất khó để nghĩ ra một ý tưởng mới từ một lĩnh vực hẹp nào đó mà không có sự hỗ trợ tính toán của máy tính. Thật sự như vậy, hầu hết các ngành kỹ thuật đều cần thực hiện một vài việc nào đó một cách tự động. Bằng việc viết ra những đoạn mã lệnh, tương tác với máy tính mà người ta thường gọi là lập trình, bạn sẽ cho máy thực hiện tự động công việc. Trong giới làm nghiên cứu sinh mà tôi biết, họ đều phải lập trình (code) để thực hiện tính toán tự động. Việc làm này mục đích để tương tác với dữ liệu và phân tích dữ liệu một cách tự động và chính xác. Vì vậy, việc họ biết một số ngôn ngữ lập trình nào đó là chuyện bình thường. Ví dụ, lập trình kỹ thuật với Matlab với hầu hết các chuyên ngành kỹ thuật; dân Vật lý hạt nhân tính toán dùng Fortran, C/C++; dân kỹ thuật dùng Pascal, Delphi; một số dân làm về Bioinformatics lập trình với Python, Perl hay PHP,… Hầu hết họ sử dụng thành thạo một

Mối quan hệ giữa các ngành Toán, Khoa học máy tính, Khoa học tính toán và Khoa học kỹ thuật
Mối quan hệ giữa các ngành Toán, Khoa học máy tính, Khoa học tính toán và Khoa học kỹ thuật

ngôn ngữ nào đó hỗ trợ tốt cho công việc xử lý tính toán số liệu. Tuy nhiên, thực tế có nhiều bài toán cần sử dụng những thư viện lập trình chuyên biệt để tăng hiệu quả tính toán. Ví dụ, trong vấn đề tính toán với dữ liệu Tin sinh học, vì khối dữ liệu khá lớn, chúng ta cần các thư viện được viết riêng tối ưu hóa, làm tăng tốc quá trình tính toán. Dưới đây, xin giới thiệu hai thư viện tính toán khoa học kỹ thuật cơ bản nhiều người đang dùng.

1. Eigen

Eigen là một thư viện chuẩn miễn phí dùng cho những vấn đề về đại số tuyến tính như: ma trân (matrices), véc tơ (vectors), các phương pháp giả số (numerical solvers), và  các thuật toán liên quan khác. Đặc điểm của Eigen có thể tóm tắt qua các từ versatile (linh hoạt), fast (nhanh), reliable (tin cậy), elegant (thanh gọn).  Bạn chỉ cần biên dịch và chạy chương trình cùng Eigen trên C++98. Một điểm thuận lợi của Eigen là nó được xây dựng dựa trên các thư viện chuẩn của C/C++ (STL – Standard Template Libraries). Vì vậy, bạn sẽ không cần cài đặt thêm những gói thư viện khác. Có khá nhiều dự án sử dụng thư viện Eigen, có thể liệt kê ở đây như:

  • Google thư viện Eigen để cài đặt những thuật toán liên quan đến học máy, xử lý đồ họa, và tối ưu.
  • Multiprecision Computing Toolbox for MATLAB (Hộp công cụ tính toán cần độ chính xác cao trong MATLAB) sử dụng Eigen như là bộ thư viện chính dành cho việc xử lý tính toán trên ma trận.

2. GNU Science Library

Là một bộ thư viện khoa học mở dành cho tất cả những ai thích lập trình với C/C++ trong hầu hết các lĩnh vực. Thư viện cung cấp một loạt các thuật toán như bộ sinh các số ngẫu nhiên, các hàm đặc biệt và những phép căn với độ chính xác cao. Có hơn 1000 hàm đã được kiểm tra qua các bộ kiểm chứng. Có một điểm lưu ý là GSL được phát triển trên nền GNU/Linux với bộ biên dịch gcc. Do đó, những bạn nào muốn sử dụng trên hệ thống Windows cần cài thêm Cygwin.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.