摘要: 常用函数。 #include <iostream> #include <omp.h> #define NUM_THREADS 16 using namespace std; int main(int argc, char* argv[]){ omp_set_num_threads(NUM_THREA 阅读全文
posted @ 2024-03-15 17:32 酥炸小黄瓜 阅读(29) 评论(0) 推荐(0)
摘要: OpenMP是基于共享内存编程模型的,这意味着除非明确指定,否则所有的变量在并行区域中都是共享的。 使用default子句,程序员可以更改这种默认行为。default(none)指定在并行区域内,除非明确指定为shared或private,否则所有变量都是未定义的。这要求程序员显式地指定每个变量的作 阅读全文
posted @ 2024-03-15 16:55 酥炸小黄瓜 阅读(151) 评论(0) 推荐(0)
摘要: collapse子句用于将多个嵌套的循环折叠成一个单独的循环。这个特性通常用于在嵌套循环上并行化以提高性能。参数n指定了折叠的层数。 #include <iostream> #include <omp.h> using namespace std; int main(int argc, char* 阅读全文
posted @ 2024-03-15 16:27 酥炸小黄瓜 阅读(539) 评论(0) 推荐(0)
摘要: OpenMP 中的锁(lock)是一种同步机制,用于保护共享资源,以防止多个线程同时访问或修改它,从而避免竞态条件。锁允许线程在访问临界区之前获取锁,并在退出临界区时释放锁。这样可以确保在任何给定时间只有一个线程能够访问临界区,从而保证了数据的一致性。 简单锁 最基本的锁,只能被一个线程锁定。当一个 阅读全文
posted @ 2024-03-15 13:35 酥炸小黄瓜 阅读(238) 评论(0) 推荐(0)