Tôi có mã C++ với pragmas OpenMP bên trong. Tôi muốn kiểm tra mã này cả cho chế độ đa luồng (với OpenMP) và trong chế độ chủ đề đơn (không có OpenMP).Làm thế nào để vô hiệu hóa các chỉ thị OpenMP một cách tốt đẹp?
Hiện tại, để chuyển đổi giữa các chế độ tôi cần phải nhận xét #pragma omp
(hoặc ít nhất parallel
).
Cách sạch nhất hoặc mặc định, cách bật/tắt OpenMP là gì?
viết mã với "#pragma omp ..." và sau đó _not_ enable -fopenmp khiến liên kết erros như "tham chiếu không xác định cho GOMP_parallel_start" –
Tôi tìm thấy 'omp_set_num_threads (1)' hữu ích nhất (đáng buồn thay, không phải rất thanh lịch trong ý kiến) –
Đối với dự án của chúng tôi, chúng tôi có WITH_OPENMP - một tùy chọn thời gian xây dựng boolean xử lý việc truyền -fopenmp và bất kỳ định nghĩa nào nếu chúng cần thiết. Id đề xuất điều này cho bất kỳ ai khác sử dụng openmp trong một dự án, khả năng kiểm tra mà không có openmp có thể hữu ích vào những thời điểm để loại trừ nó ra như là một nguyên nhân gây ra bất kỳ lỗi nào. – ideasman42