Skip to main content

Posts

OpenMP三种并行方式的对比

OpenMP三种并行方式的对比 算例 对 的值通过级数进行计算,采用的公式为如下。 假设需要计算前N项的级数和,则 的表达式为: 计算 分别使用OpenMP中的 共享任务结构 、 private和critical语句 、 并行归约 与串行程序进行计算精度和时间的对比,计算中N取值为10000000,对比结果如下: pi : 3.14159 Seriel Process Total Time: 0.069s pi : 2.63998 Parallel Process 1 Total Time: 0.309s pi : 2.82509 Parallel Process 2 Total Time: 0.044s pi : 3.14159 Parallel Process 3 Total Time: 0.035s 其中:Parallel Process 1为 共享任务结构 ,Parallel Process 2为 private和critical语句 、Parallel Process 3为 并行归约 。 可以看出P1和P2与 的值相差较远,P3算的最精确;P1所使用的时间比串行还要多,P2和P3所使用的时间都比串行少。 对于此问题,P3是最优的选择方案。 代码 // test case of OpenMP ​ #include <iostream> #include <omp.h> #include <time.h> ​ using namespace std ; ​ static long num_steps = 10000000 ; double step ; #define NUM_THREADS 2 ​ ​ int SerielProcess () { clock_t startTime , endTime ; startTime = clock (); ​ int i ; double x , pi , sum = 0.0 ; step = 1.0 / ( double ) num_steps ; for ( i = 0 ; i < num_steps ; i ++ ) { x ...

利用Anaconda平台、使用python实现六维资源更新提醒

Anaconda是Python的一个免费增值(freemium)发布,用于处理大规模数据处理、预测式分析和科学计算,目标是简化包的管理和部署。它的包管理系统是conda。Anaconda包含了超过330个Python开源包。所以使用Anaconda平台进行python编程只需专注于内容而不用担心python支持包的问题。 前几天六维开放注册,就有新人问怎样才能快速涨分,我的经验是: 在热门资源的早期就开始做种 。按照这个思路就有两个问题出现: 1、怎么识别热门资源 2、如何在其早期就开始做种 怎么识别热门资源呢?我对电影区比较熟悉,就拿电影区举例。电影区的热门资源有两条规律: (1)院线上映大片的前几部或者导演演员的前续作品都很有可能是热门资源。比如王牌特工2上映前,王牌特工1肯定是热门资源。 (2)院线大片有资源后只要在电影区出现肯定是热门资源。 当然电视剧集区里,微博微信的热门话题剧集就是热门资源了。 如何在热门资源早期就开始做种?由于六维下线了RSS功能,所以如果没有其他提醒方式帮助,只能频繁的手动查看资源区,这样很浪费时间的。 这种重复性的工作就交给脚本吧! 思路:六维新发布的资源都会显示在相应资源区的第一页,并且这一页的网址不会变。因此用脚本监测这一页的内容,如果出现想要的资源马上提醒。 方案:使用python制作脚本,使用urllib包登录六维并抓取监测页面内容,使用BeautifulSoup包解析抓取的内容、查找想要的资源是否出现,使用email、smtplib包发邮件提醒新资源出现了(如果手机有邮箱客户端就可以很快收到提醒了)。 以下贴上脚本源码,在红色位置填上自己的信息即可。 # 登录neu6抓取内容 import urllib.request  import urllib.parse  import http.cookiejar #设置时钟 import time # 解析抓取内容 from bs4 import BeautifulSoup import io  import sys # 发送邮件提醒 from email import encoders from email.hea...