Số học dấu phẩy động chính xác cao hơn trong PDE số


9

Tôi có ấn tượng, từ các nguồn lực rất khác nhau và nói chuyện với các nghiên cứu, rằng có nhu cầu ngày càng tăng đối với các tính toán có độ chính xác cao trong các phương trình vi phân từng phần số. Ở đây, độ chính xác cao có nghĩa là độ chính xác cao hơn so với độ chính xác kép 64 bit tiêu chuẩn.

Tôi tự hỏi về tình trạng của nghệ thuật của chủ đề này. Bằng cách so sánh, có các cộng đồng trong PDE số mà nhắm mục tiêu cụ thể, ví dụ: phương pháp đa lõi, song song quy mô lớn hoặc tính toán GPU. Tôi tự hỏi liệu một cộng đồng tương tự có tồn tại hay đang phát triển cho các phương pháp có độ chính xác cao trong PDE số hay không và tôi sẽ quan tâm cụ thể (và đây là điểm thực sự của câu hỏi) trong các bài viết giới thiệu hoặc khảo sát về độ chính xác cao, cũng mang lại ấn tượng về sự liên quan thực tế của chủ đề.

Câu trả lời:


16

Sự rời rạc của các PDE liên tục thường phạm lỗi nhiều hơn độ chính xác hữu hạn. Tôi thấy rằng khoảng 90% những người yêu cầu độ chính xác cao hơn chỉ lười biếng với việc xây dựng vấn đề và đang cố gắng giải quyết vấn đề bằng cách sử dụng tỷ lệ kém, phân biệt xấu hoặc mô hình liên tục xấu. 10% còn lại có thể có các hệ thống điều hòa không chính đáng mà độ chính xác tăng lên thực sự có ý nghĩa. Ngay cả trong những trường hợp đó, chúng tôi chủ yếu sử dụng độ chính xác quad làm công cụ gỡ lỗi (đặc biệt là kết hợp với các phương pháp sử dụng các dẫn xuất Frechet khác biệt hữu hạn và để điều tra nguyên nhân của các khoảng trống số "giả") hoặc cục bộ cho một hoạt động rất nhạy cảm thay vì trong quy mô lớn cho sản xuất.

GCC đã cung cấp __float128từ phiên bản 4.6, vì vậy rất dễ thử. (Việc triển khai trước đây thường khó xâm nhập hơn và ít di động hơn.) PETSc đã hỗ trợ --with-precision=__float128kể từ phiên bản 3.2, do đó, đây chỉ là vấn đề biên dịch lại.


Đúng. Và Fortran có thực (dp) trong đó người ta có thể đặt dp = 16 (cho gfortran) để có độ chính xác gấp bốn, vì vậy cũng rất dễ để thử.
Ondřej Čertík

9

Trong 15 năm chúng tôi đã cung cấp phần mềm FEM dưới dạng dự án deal.II (http://www.dealii.org/), tôi không nghĩ rằng chúng tôi đã từng có một yêu cầu thực sự để giải quyết các PDE độ chính xác cao hơn độ chính xác kép. Lý do là như Jed gợi ý trong câu trả lời khác: Lỗi người ta làm cho PDE rời rạc lớn hơn nhiều so với 16 chữ số chính xác mà người ta nhận được từ số học dấu phẩy động chính xác kép. Do đó, bạn phải có một lưới cực kỳ tốt để đi đến điểm mà bạn cần độ chính xác hơn trong số học để ảnh hưởng đến lỗi tổng thể.

Tôi nghĩ rằng thực tế thì ngược lại: Mọi người đang nghĩ về (và làm việc) những gì xảy ra khi bạn, ví dụ, sử dụng độ chính xác duy nhất để lưu trữ các yếu tố của ma trận hoặc của điều kiện tiên quyết. Nói chung, điều này không làm giảm đáng kể độ chính xác của chúng, nhưng nó làm tăng hiệu suất lên khoảng hai lần vì bạn chỉ cần một nửa dữ liệu từ bộ nhớ vào bộ xử lý.

Vì vậy, ý nghĩa của tôi là độ chính xác gấp bốn (hoặc thậm chí cao hơn) là thứ có thể liên quan đến cộng đồng người giải ODE nhưng không liên quan đến cộng đồng PDE.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.