应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

CJuliaPythonNumba和Cython执行速度比较

  导入必备包importnumpyasnpimportpandasaspdimporttimefromnumpy。testingimportfromscipy。linalgimportimportgcfrommatplotlibimportpyplotaspltmatplotlibinlinefromnumbaimportjit,void,doublePythondefdetbylu(y,x):y〔0〕1。Nx。shape〔0〕forkinrange(N):y〔0〕x〔k,k〕foriinrange(k1,N):x〔i,k〕x〔k,k〕forjinrange(k1,N):x〔i,j〕x〔i,k〕x〔k,j〕defrunpython(A,B,y,N):checkthatresultiscorrectnp。copyto(B,A)detbylu(y,B)Lnp。tril(B,1)np。eye(N)Unp。triu(B)assertalmostequal(L。dot(U),A)gc。disable()sttime。time()loops1(100000(NN))forlinrange(loops):np。copyto(B,A)detbylu(y,B)ettime。time()gc。enable()return(etst)loopsNumpydefnumpydetbylu(y,x):y〔0〕1。Nx。shape〔0〕withnp。errstate(invalidignore):forkinrange(N):y〔0〕x〔k,k〕xkx〔k〕foriinrange(k1,N):xix〔i〕xi〔k〕xk〔k〕xi〔k1:〕xi〔k〕xk〔k1:〕defrunnumpy(A,B,y,N):checkthatresultiscorrectnp。copyto(B,A)numpydetbylu(y,B)Lnp。tril(B,1)np。eye(N)Unp。triu(B)assertalmostequal(L。dot(U),A)gc。disable()sttime。time()loops1(100000(NN))forlinrange(loops):np。copyto(B,A)numpydetbylu(y,B)ettime。time()gc。enable()return(etst)loopsNumbadefnumbadetbylu(y,x):y〔0〕1。Nx。shape〔0〕forkinrange(N):y〔0〕x〔k,k〕foriinrange(k1,N):x〔i,k〕x〔k,k〕forjinrange(k1,N):x〔i,j〕x〔i,k〕x〔k,j〕fastdetbylujit(void(double〔:〕,double〔:,:〕))(numbadetbylu)defrunnumba(A,B,y,N):checkthatresultiscorrectnp。copyto(B,A)fastdetbylu(y,B)Lnp。tril(B,1)np。eye(N)Unp。triu(B)assertalmostequal(L。dot(U),A)gc。disable()sttime。time()loops1min(1000000(NN),20000)forlinrange(loops):np。copyto(B,A)fastdetbylu(y,B)ettime。time()gc。enable()return(etst)loopsCythonloadextcythoncythonimportcythoncython。boundscheck(False)cython。wraparound(False)cpdefcythondetbylu(double〔:〕y,double〔:,:〕x):y〔0〕1。cdefintNx。shape〔0〕cdefinti,j,kforkinrange(N):y〔0〕x〔k,k〕foriinrange(k1,N):x〔i,k〕x〔k,k〕forjinrange(k1,N):x〔i,j〕x〔i,k〕x〔k,j〕defruncython(A,B,y,N):checkthatresultiscorrectnp。copyto(B,A)cythondetbylu(y,B)Lnp。tril(B,1)np。eye(N)Unp。triu(B)assertalmostequal(L。dot(U),A)gc。disable()sttime。time()loops1min(1000000(NN),20000)forlinrange(loops):np。copyto(B,A)cythondetbylu(y,B)ettime。time()gc。enable()return(etst)loopsCfromcffiimportFFIffiFFI()ffi。cdef(voiddetbylu(doubley,doubleB,intN);)Cffi。dlopen(rC:UsersIBMADMINlu。dll)cdetbyluC。detbyludefrunc(A,B,y,N):runccodeBnumpy。zeros((N,N),orderF)B〔:,:〕Anp。copyto(B,A)cdetbylu(ffi。cast(double,y。ctypes。data),ffi。cast(double,B。ctypes。data),ffi。cast(int,N))checkthatresultiscorrectLnp。tril(B,1)np。eye(N)Unp。triu(B)assertalmostequal(L。dot(U),A)gc。disable()sttime。time()loops1min(1000000(NN),20000)forlinrange(loops):np。copyto(B,A)cdetbylu(ffi。cast(double,y。ctypes。data),ffi。cast(double,B。ctypes。data),ffi。cast(int,N))ettime。time()gc。enable()return(etst)loopsScipydefrunscipy(A,B,y,N):checkthatresultiscorrectnp。copyto(B,A)(P,L,U)lu(B,overwriteaTrue)assertalmostequal(P。dot(L。dot(U)),A)gc。disable()sttime。time()loops1min(1000000(NN),20000)forlinrange(loops):np。copyto(B,A)lu(B,overwriteaTrue)ettime。time()gc。enable()return(etst)loopsLapackdefrunlapack(A,B,y,N):checkthatresultiscorrectgc。disable()sttime。time()loops1min(1000000(NN),20000)forlinrange(loops):np。copyto(B,A)lufactor(B,overwriteaTrue)ettime。time()gc。enable()return(etst)loopsTimingsdeftimings(n7,series〔purepython,c,numba,numpy,cython,scipy,lapack,julia〕):Nsnp。array(〔5,10,30,100,200,300,400,600,1000,2000,4000,8000〕)Fs〔runpython,runc,runnumba,runnumpy,runcython,runscipy,runlapack〕timespd。DataFrame(np。zeros((n,len(Fs)1)),indexNs〔:n〕,columnsseries)fori,Ninenumerate(Ns〔:n〕):print(N,N,end)Anp。random。random((N,N))Bnp。empty(A。shape)ynp。zeros(1)forj,labelinenumerate(series〔:1〕):iflabel!:print(j,end)times。loc〔N,label〕Fs〔j〕(A,B,y,N)print()returntimes执行,统计耗时timestimings(9)N50123456N100123456N300123456N1000123456N2000123456N3000123456N4000123456N6000123456N10000123456结果times
  python
  c
  numba
  numpy
  cython
  scipy
  lapack
  julia
  5hr0。000051
  0。000016
  0。000002
  0。000074
  0。000006
  0。000029
  0。000031
  6。091400e07
  10hr0。000312
  0。000016
  0。000003
  0。000234
  0。000006
  0。000030
  0。000031
  1。060710e06
  30hr0。007800
  0。000028
  0。000014
  0。001950
  0。000014
  0。000070
  0。000056
  9。082080e06
  100hr0。289310
  0。000154
  0。000463
  0。029782
  0。000309
  0。000309
  0。000309
  2。265530e04
  200hr2。277604
  0。001800
  0。007200
  0。119600
  0。003600
  0。001200
  0。001200
  1。740604e03
  300hr7。636214
  0。007800
  0。019500
  0。226200
  0。007800
  0。003900
  0。001300
  5。823171e03
  400hr18。267632
  0。017829
  0。051257
  0。514801
  0。020057
  0。008914
  0。002229
  1。372135e02
  600hr62。197309
  0。062400
  0。124800
  0。982802
  0。088400
  0。036400
  0。010400
  4。543215e02
  1000hr290。472510
  0。257401
  0。569401
  3。042005
  0。288600
  0。070200
  0。039000
  2。642414e01
  画图defplottimes(times,cols〔〕,nameruntimes。png):plt。figure(figsize(7,5))ifcols〔〕:colstimes。columnsfori,labelinenumerate(cols):iflabel!:plt。loglog(times。index,times〔label〕,labellabel)plt。xlabel(N(matrixsize))plt。ylabel(runtime〔sec〕)plt。grid()plt。legend(loc2)plt。savefig(name)plt。show()plottimes(times,cols〔purepython,c,numba〕,nameruntimes1)
  plottimes(times,cols〔purepython,c,cython〕,nameruntimes2)
  plottimes(times,cols〔purepython,c,numpy〕,nameruntimes3)
  plottimes(times,cols〔purepython,c,scipy,lapack〕,nameruntimes4)
  plottimes(times,cols〔purepython,c,julia〕,nameruntimes5)

世界杯临近!海信Vidda4K全色激光投影C1带给你极致大屏值友们!经过四年漫长的等待,备受关注的第22届卡塔尔世界杯终于将要在2022年11月份拉大幕!传统豪强悉数参赛(中国和意大利除外),可以说群星璀璨,巨星云集。32支晋级决……卡其色搭配这15个颜色,简约大气不累赘秋冬穿搭怎么少的了经典卡其色,低调又不张扬,自带高贵与优雅感,随意搭配就能穿出优雅与干练气质感,同时又能很好的衬托肤色。这期介绍的25套卡其色搭配参考完全可以照搬,谁都h……吃货的世界杯里满眼都是大餐,32强,全能当下酒菜上桌2022世界杯世界杯是可以下酒的。播出时间表就是一份菜谱,32强,全能当下酒菜上桌。红魔比利时是小龙虾;一水儿绿的墨西哥队是拍黄瓜;巴西可以是水煮毛豆,或因太过纯熟,颜色……大话西游2藏宝阁上架首只神兽心猿,12万人民币让人买不起一款游戏一生朋友,大家好,我是你们的老朋友老张头,这里是大话经典录像,每天为大家更新最新的牛图以及资讯,也会分享一些实用攻略,感谢大家的关注,咱们就看看今天要聊什么话题吧。……历史悠久的千年古城耶路撒冷历史悠久的千年古城耶路撒冷原创晓光说天下历史悠久的千年古城耶路撒冷耶路撒冷可以说是世界上最美丽、最深沉、苦难最深重、文化最深厚的城市之一,几千年历史文化的积淀……74岁汪明荃越老越潮,吊带裙内搭荧光绿打底衫,比00后还时髦头条创作挑战赛衰老不可怕,只要人老心不老,就不会被时光的飞逝打败。对于老年女性来说,保持良好的心理状态是再重要不过的事情了,不能因为自己到了老年就开始自暴自弃、放弃身材管……医生没告诉你的尿常规检查的注意事项,肾功能不好的人尤其要知道尿液是肾脏生成的,它的变化也反映着肾脏的变化,所以尿检是肾病、尤其是早中期肾病最重要的检查,每位肾友都应该学会怎样留取尿液标本。在查尿时,有7个注意事项:1。最好是……四连胜!谷神星一号火箭成功发射5颗高分03D卫星中国日报11月16日电(记者赵磊)今天下午14时20分,星河动力航天公司于酒泉卫星发射中心成功发射谷神星一号(遥四)运载火箭,顺利将吉林一号星座的5颗卫星送入太阳同步轨道。……英超执行工资帽?英超即将沦陷,平民球队争冠再不可见之前《泰晤士报》曾经独家报道,英超准备效仿欧洲足坛的其他联赛,准备执行俱乐部的工资帽政策,一旦执行工资帽或许会让足坛最为激烈的联赛开始分层,英超的强弱悬殊会非常明显,甚至直接导……女排联赛再一次印证蔡斌指导浪费了中国女排的最宝贵锻炼机会20222023赛季中国女子排球超级联赛已经战罢七轮。我们先看看前七轮各项技术统计:从以上各项技术统计可以看得出来中国女排00后们完完全全可以接班国家队接受正正规规的训练……感冒药和退烧药千万不要一起吃,小心吃成肝损伤!提醒各位朋友,感冒药和退烧药千万不要一起吃,新冠没有要你的命,这几种药混合吃可能会导致肝衰竭,有可能做肝移植,甚至是丢了性命。你吃的退烧药是不是对乙酰氨基酚,然后你家里面……券商也降息了!9月21日起有券商宣布将经纪业务客户存款利率下每经记者:王砚丹每经编辑:叶峰9月15日,多家银行集体降息引起了社会热议。时隔一周,证券行业也开始加入了降息行列。《每日经济新闻》记者发现,9月20日,诚通证券、信……
中国男篮迎战伊朗男篮,锋线身高优势明显,重点盯防对方4名核心中国男篮将于11日21:30迎战伊朗男篮,开启世预赛第五个窗口期,本次比赛的对手分别是伊朗队、巴林队,其中伊朗队实力比较强,是亚洲老牌劲旅,本次男篮阵容不整,周琦大概率不能打,……云南天文台在红色波段发现最大的恒星耀斑近期,《英国皇家天文学会月刊》(2012MNRAS。tmp。3147Q)在线发表了中科院云南天文台钱声帮研究员等通过用60公分望远镜对一颗红矮星双星进行监测,在红色波段(R波段……如果保罗不离开,哈登早已夺冠,火箭失去了这个时代最好的二当家克里斯保罗,一个马上年满37周岁的老将,上赛季带领常年缺席季后赛的太阳淘汰湖人等对手,一路杀入总决赛。本赛季又以场均14分、10个助攻、4。4个篮板的出色的表现将球队带到了常规……2023年养老金上调,工龄30年以下涨300,30年以上涨5点击上方蓝色按钮,即可收听全文。2023年养老金上调,工龄30年以下涨300,30年以上涨500,可行吗?工龄在一定程度上反映了退休人员对社会对单位所作出的贡献,按……到手就拆解破3DMark纪录的蓝宝石RX5600XT矿渣卡,Tony哥的矿渣日记五讲四美是个好习惯,尤其是讲卫生〔奸笑〕以至于同一个型号的矿渣显卡,在不同的矿厂、不同的运行卫生条件、不同的矿老板手里,退休之后的健康状况、运行状况都……全国白酒大评比,没想到名列前茅的竟然是这4款,你喝过吗?在我们国家,白酒可谓是宴会上必不可少的一样饮品,不管是之前供销社的年代,还是现在的时候,都是这样的,而且随着社会的发展,白酒文化也是越来越昌盛了,在如今的社会,白酒的排名一直是……中国男足好消息!多名留洋球员陆续驰援,洋帅集体考察,检验成色日前,根据国内媒体报道,效力于西班牙格拉纳达预备队的黎腾龙,已经从西班牙赶赴U21国青报到,未来还会有像黎腾龙这样的留洋球员去国青队。U21国青队正在克罗地亚集训比赛,教练组为……整形医生的抗衰保养课堂如何对付皱纹下垂和凹陷?什么是衰老?随着年龄增长,衰老随着年龄的变化,会出现一个生理和心理的适应能力的降低。一般来说生长发育的过程,每个人都会面临衰老。人的衰老是如何出现的?一般情况下最开……链上黑马零时科技,被低估的区块链安全潜力股前言区块链生态企服行业迎来爆发,找寻Web3。0产业独角兽,链上安全企服赛道的黑马在哪?2022年,区块链安全赛道非常热闹,伴随着区块链的破圈和生态激增,安全事件频……中兴999元新机发布搭载国产6nm5G芯片今日,中兴手机官方微博带来消息,搭载纯国产芯片的机型中兴远航30S正式开售。该机最大的亮点就是那颗来自于国产自研的5G芯片,供应方为紫光展锐,型号为T760,基于台积电6……手机耗电太快是这3个开关没关掉教你一招搞定,省电还省流量手机刚买回来的时候被发现使用一两天都不用充电,久而久之会发现电池明显不够用了,一天得来回冲个两三次。这是因为手机使用久了,手机里面下载安装的软件越来越多,各种通知接踵而来,电池……LPL夏季赛Xun掌门第七次MVPIG力克UP拿到赛季第三胜2022年7月28日,LPL夏季赛第八周第四个比赛日,IG对阵UP。首局BP:UP拿到一套偏四保一的阵容,阵地团战能力还是比较不错的,IG则是拿到了一套偏节奏的阵容……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网