精华内容
下载资源
问答
  • Numpy可以提高数组重复计算速度 Numpy数组的运算速度要比python数组的运算的快很多,其关键是利用向量化操作,通常这在Numpy的通用函数(ufun)中实现。 我们先看看python原生实现对一个数组所有元素取倒数操作...

    Numpy可以提高数组重复计算的速度

    Numpy数组的运算速度要比python数组的运算的快很多,其关键是利用向量化操作,通常这在Numpy的通用函数(ufun)中实现。

    我们先看看python原生实现对一个数组所有元素取倒数操作的时间效率。这里使用Ipython的魔术方法%timit计算该操作运行的时间:

    In [1]:
    import numpy as np
    np.random.seed(0)
    
    def compute_reciprocals(values):
        output = np.empty(len(values))
        for i in range(len(values)):
            output[i] = 1.0 / values[i]
        return output
    
    big_array = np.random.randint(1, 100, size=10 ** 6)
    %timeit compute_reciprocals(big_array)
    
    Out[1]:
    1.46 s ± 9.2 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

    以上这种实现方式对于有C语言和Java背景的人来说非常自然,但在python中,这一操作就相当耗时,仅仅是完成百万次上述操作并存储结果花了几秒钟的时间。事实上,这里的运算瓶颈并不是运算本身,而是Cpython在每次循环时必须做数据类型的检查和函数的调度。每次进行倒数运算时,python首先检查对象的类型,并且动态查找可以使用该数据类型的正确函数。如果我们在编译代码时进行这样的操作,那么就能在代码执行之前知晓类型的声明,结果的计算也会更加有效率。

    numpy的解决方法

    Numpy为很多类型的操作提供了非常方便的、静态类型的、可编译程序的借口,也被称作向量操作,这种向量方法将循环推送至Numpy之下的编译层,从而取得更快的执行效率。因此,当你看到python脚本的出现复杂度很高的循环时,就应该考虑能否用向量方式替换这个循环。

    In[2]:%timeit (1.0 / big_array)
    
    Out[2]:
    1.46 ms ± 30 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

    可以看到,使用向量操作后,对于相同的操作,numpy下运行速度要比python原生方法提升1000倍!

    展开全文
  • 提高有限元分析精度的两种方法

    有许多提高有限元分析的方法,目前使用较多的主要是:h方法和p方法。

    提高计算精度的h方法
    不改变各个单元上基底函数的配置情况,只通过逐步加密有限元网格来使结果向正确解逼近。这种方法在有限元分析的应用中最为常见,并且往往采用较为简单的单元构造形式。h方法可以达到一般工程的精度(即要求以能量范数度量的误差控制在5-10%以内),其收敛性比p方法差,但由于不用高阶多项式作基底函数,因而数值稳定性和可靠性都较好。

    在进行仿真时,可以对关键部位进行网格细化处理,得到精度较高的解,这适应于计算能力不足的计算机,也可以减少计算时间。

    提高计算精度的p方法
    保持有限元的网格剖分固定不变,增加各单元上基底函数的阶次,从而改善计算精度;大量的实践表明:p方法的收敛性大大优于h方法;p方法的收敛性可根据weierstrass定理来论证;由于p方法使用高阶多项式作为基底函数,会出现数值稳定性问题,另外,由于计算机的容量和速度的限制,多项式的阶次不能太高(一般情况下多项式函数的最高阶次p<9),尤其在振动和稳定问题求解高阶特征值时,无论h方法还是p方法都不能令人满意,这是多项式插值本身的局限性造成的。

    在ANSYS等仿真软件中,使用p方法提高计算精度可以更换单元。

    参考文献:
    《有限元分析基础教程》 曾攀

    展开全文
  • 暴力破解--利用计算机执行速度

    千次阅读 2017-05-03 13:51:54
    计算机的优势:计算速度 最笨的计算方法 --直接枚举每种可能的情况 --情况数不是天文数字即可 --要做到不遗漏 --最好不重复 鸡兔问题示例 有鸡兔共50头 共有脚120只 问鸡兔分别的数量? X+y = 50, 2x + 4y = 120 ...

    暴力破解

    源地址:http://blog.csdn.net/u012494598?viewmode=contents

    计算机的优势:计算速度

    最笨的计算方法

    --直接枚举每种可能的情况

    --情况数不是天文数字即可

    --要做到不遗漏

    --最好能不重复

    鸡兔问题示例

    有鸡兔共50

    共有脚120

    问鸡兔分别的数量?

    X+y = 50, 2x + 4y = 120

    计算机不是数学家,不会自己解方程。

    考虑鸡的所有可能的数量即可

    publicstaticvoidmain(String[] args)

       {

          int HEAD = 50;

          int FOOT = 120;

         

          // x:鸡数, y:兔数

          for(int x=0; x<HEAD; x++){

             int y = HEAD - x;

             if(x * 2 + y * 4 == FOOT){

                System.out.println("x=" + x +",y=" + y);

                break;

             }

          }

       }

    韩信点兵问题

    韩信知道部队人数大约1000多,具体数字不详。

    使用如下办法

    5人一组余 1

    7人一组余 2

    8人一组余 3

    考虑所有可能的人数1000 – 2000

    publicstaticvoidmain(String[] args)

       {

          for(int i=1000; i<2000;i++){

             if(i%5==1 &&i%7==2 && i%8==3) System.out.println(i);

          }

       }

    马与瓦

    总共有 100 匹马

    总共驮有 100 块瓦(古代的瓦,很大,很重)

    每匹大马每次能驮 3 块瓦

    每匹小马每次能驮 2 块瓦

    小马驹每次 2个马驹驮 1块瓦

    求各种马的数目

    提示:可能是多解的,要列出所有的解。

    publicstaticvoidmain(String[] args)

       {

          // i:大马数量

          // j:小马数量

          // k:马驹数量

          for(int i=0; i<=100; i++)

          for(intj=0; j<=100; j++){

             int k = 100-i-j;

             if(k<0 || k%2!=0)continue;//题意隐含k要满足的条件

             if(i*3+j*2+k/2 != 100)continue;//公式

            

             System.out.println(i+ ","+ j + ","+ k);

          }

       }

    小结:

    一、   涉及计算动物个数问题,可给各种动物设定变量(x,y,z,然后是运用已知常量去做循环,根据题意推算出公式,计算判断是否正确解。

    二、     涉及余数,根据题意去取模综合判断是否正确解。

     

    展开全文
  • 那么怎么才能提高挖矿收益呢? 挖矿的最基本的物理条件就是得有一台运行稳定稳定的矿机,这个不在今天的讨论范围之内。 有了一台硬件条件过硬的矿机之后,只要做好一下两点,你就会比别人轻松高出3-5%的收益: 第一...

    随着时间的推移,全网算力越来越大,挖矿难度越来越高,以太坊挖矿一天收益多少?那么怎么才能提高挖矿收益呢?

    挖矿的最基本的物理条件就是得有一台运行稳定稳定的矿机,这个不在今天的讨论范围之内。

    有了一台硬件条件过硬的矿机之后,只要做好一下两点,你就会比别人轻松高出3-5%的收益:

    第一点:挖矿软件的选择。

    如果你不想为软件打工的话,一定要选择原版,一定要选择原版、一定要选择原版,重要的事情说三遍。

    网上的界面版诸如长沙矿工、圣骑士、数字矿工、矿工队长、超级矿工…其实都是在claymore的原版基础上加壳而成,再加上除了原版的抽水外,很多的界面软件作者为了其自身的利益,又进行了二次抽水,不但使软件的稳定性大打折扣,软件抽水的总比例也超过原版,矿工的收益也会打一个折扣。

    如果你的卡是A卡的新型号,比如RX4xx和RX5xx系列,也就是Tahiti, Tonga, Ellesmere(rx570),

    Baffin(rx560)架构的,你一定要用最新版的原版,因为针对这些GPU,相较老版本软件,作者做了很多的优化,V11.0的比V10.x和V9.x的算力提升了1-2%。亲测,笔者的rx570的算力从28.6增加到了29.0,rx560从14.2增加到了14.3。从原版的远程监控里看,对于V11.0,即时总算力是186-187,一分钟平均算力是185左右。(最新版的程序对于大多数显卡提升算力明显,但是也有少数不稳定,如果发现不稳定,应该降低版本到V11.0或者更低)

    下图是笔者使用V11.0的时候的截图:

    现在使用使用原版加壳的界面版的菜鸟不在少数,可能是这部分人对命令行不太熟悉,也可能是根本就不知道这些界面版其实是来源于claymore,也不知道原版在哪里下载。

    其实原版的使用非常简单,下载下来后,只要把你的挖矿钱包和矿池地址填入启动批处理文件,然后就可以点击启动文件开始挖矿了。当然如果你是AMD的Tahiti,

    Tonga, Ellesmere(rx570), Baffin(rx560),还可以制定“-asm

    2”,并在挖矿软件运行后用“+”或者“-”号键来微调“-dcri

    ”这个参数值,找到最适合你的“-dcri”的值后,可以把他固定下来,下次启动就不用手动调整了。

    为了减少菜鸟的使用障碍,良心矿工对启动文件做了中文注释,你只要右键编辑“RX570RX560显卡单挖.bat”或者“非RX570RX560显卡单挖.bat“,按照里边的中文注释修改钱包为你自己的并保存退出,然后双击这个”RX570RX560显卡单挖.bat”或者“非RX570RX560显卡单挖.bat“就可以启动挖矿了。

    第二点:矿池的选择。

    矿池很多,矿池的选择也是菜鸟矿工头疼的事,笔者也是今年1月份刚入坑的菜鸟一枚,由于网上根本就没有这些资料的介绍,走了很多的弯路,试矿池、试软件,一遍又一遍、一天又一天,浪费了非常多的时间,也浪费了很多的金钱(矿产量低了,收入就少了)。

    矿池的选择要遵循一下几点:

    1、拒绝率低。直接比有些拒绝率高达3-5%的矿池提高收益3-5%;

    2、延时低。延时低的比延时高的更容易获得有效的share,有效的的share就是收益啊;

    3、矿池不能偷算力,本地算力(软件显示算力)与矿池接受算力24小时的平均值要一致;这个可以用蚂蚁池的算力计算器来检验,看看过去的24小时收益是不是与计算收益基本吻合。

    收益的比较方法:千万不要运行一两个小时你就急着看,科学的方法是你应该在48小时候后再看过去24小时每100M算力的收益(矿池收益÷矿机本地1分钟平均算力)。

    以上就是菜鸟提高收益的2个基本方法

    以太坊挖矿的利润究竟有多大?为了正确地回答这个问题,让我们从头说起:先假设一台挖矿设备,然后使用合理的数据,再经过实际分析,看看以太坊挖矿可以赚到多少钱。

    我们假设以太坊的价格是固定的。不考虑以太坊增值所带来的利润,可以方便我们将实际的回报率与硬件、电费和其他运行挖矿设备相关的成本关联起来。

    我们的假设使用了以下2020年1月的数据(我们尽量使用了合理和中间地带的数据)

    2020年ETH挖矿难度和收益计算

    挖矿成本的假设

    你可以看到,这个虚拟的挖矿设备比市面上现有的较好的挖矿设备更高效,更赚钱。我们假设有4个GPU,每个的挖矿能力为40MH/s。硬件的规格为:4个GPU、1个处理器、1个主板和1个1000瓦的电源。这个挖矿设备的成本大约是3千美元。

    一般电费大约是每千瓦时10美分,这个数据来源于美国国家平均电费价格。为了运行挖矿设备,每小时至少需要为每千瓦支付10美分。这意味着每天挖矿所需的电费是2.4美元。我们还需要在这基础上加上2020年1月的区块奖励和区块难度。我们假设在矿池工作的时候仅可使用一台设备。有些矿池征收10%的费用,好点的只收1%。所以我们取中间值1.5%。

    我们从Etherescan的历史图表上截取几个点作为难度系数,然后运行一次指数回归,就可以得到指数增长系数,它反映了以太坊挖矿的难度增长情况。

    区块难度增长函数

    根据这个函数,我们得出了下列值,用于描述难度函数未来值的预测曲线。

    以太生态系统的假设

    利用区块难度的增长,我们可以算出一年后,难度系数将从2,280,210,891,539,710增长到11,880,071,363,893,300。此难度系数是根据上面拟合的难度函数计算的,并假定这个函数也适用于未来的难度系数。

    区块难度与以太坊挖矿的设备产生的利润成反比。这意味着,随着每天难度的增加,设备的利润会下降。

    最终,设备赚的钱不够支付运行所需的电费。到时就必须关掉设备了,因为你会赔钱。

    借用CoinWarz的挖矿利润计算器,输入一个不断增长的区块难度,我们发现仅需要一年的时间每天的利润就从18.24美元降到1.60美元。这个计算器使用的输入信息有:hash速率(MH/s)、功率(瓦)、电费单价(美元/千瓦时)、难度、区块奖励、矿池收费、ETH到BTC的兑换率、BTC到美元的兑换率,以及硬件成本。对于利润预测函数,我们用这个计算器每个月计算一个点,并假定每两个点之间是线性的。

    根据这个计算器,如果从2020年1月开始,1年半(476天)后以太坊挖矿设备的运行费用将超过产生的利润(假设以太坊的价格是固定的),然后就会开始赔钱。

    最后到挖矿设备关闭为止,总计获得的利润为2,916.59美元。但是,回顾一下本文开头,我们计算过投入的成本大约为3000美元,所以不难发现实际上是有点赔钱的。当然你可以把GPU卖掉收回一些成本,但是二手设备会大幅降价,而且随着新挖矿设备以惊人的速度更新换代,旧设备的降价只会加剧,一年半前购买的GPU基本已丧失了大部分价值。最终GPU的出手价格将决定此次挖矿整体的投资回报。

    想想看,一个600美元的GPU,一年50%的折旧率已经算相当不错了。如果你以每个300美元的价格卖掉GPU,那么总共可以获得1200美元,于是总计收入为4,116.59美元,这意味着利润为1,116.59美元,大约是37%的回报率。

    看看亚马逊你就会明白GPU的价格很容易就会贬值到100美元以下。即便按照100美元计算,总共可以收回400美元,那么整体的收入为3,316.59美元,利润为316.59美元,回报率大约为10.5%。

    在计算过程中,我们所用的电费成本虽然比较实惠,但不算太理想。看看下列3个例子,其中一位矿工来自康涅狄格州,一位来自华盛顿,再加上我们的假设挖矿设备:

    美国不同城市的利润情况

    根据居住地的不同,电费将对挖矿的利润造成巨大影响。如果是来自华盛顿的矿工,即便最后可以把每个GPU卖到150美元,也基本上会赔本。

    而且以上计算还没有考虑其他潜在的成本。这些成本可能包括运作、冷却和维护成本等的开销。

    当然,挖矿的真正希望在于货币的大幅增值(我们这里说的是以太币)。但是通过挖矿获取以太币并不是获取货币的有效途径。

    其实你可以把挖矿的钱都投到看中的加密货币上,这样一来不用经历头疼的挖矿就可以获取利润了。

    在不久的将来,挖矿的方式将面临更大的威胁:以太坊很快就要采用Casper协议的权益证明机制了。这个机制实现后2-3年内,传统的挖矿就无法正常运行了,而挖矿设备也将被淘汰。届时,挖矿设备无法再产生利润。只有锁定股份的“股东”才能从以太坊区块链获益,而非矿工。作为股东的你不再需要GPU复杂的hash能力了。

    本文并不想阻止以太坊网络的挖矿。我们需要矿工来保证巨大的去中心化系统。我们的目的在于展示以太坊的升值可以带来挖矿的利润。随着我们的世界拥有越来越多去中心化的服务,无论是直接支付给以太坊的服务,还是付给其他加密资产的服务,由于硬件投资的大幅贬值挖矿可能会变得越来越没有价值。

    以太坊挖矿机配置以太坊挖矿难度和收益以太坊挖矿收益计算以太坊挖矿以太坊挖矿一天收益多少以太坊价格行情以太坊官网在这里插入图片描述

    展开全文
  • Matlab串口数据接收发送流程串口速度提高

    万次阅读 多人点赞 2018-09-11 19:28:52
    在进行PID参数整定的工作过程中,我需要将电机的转速、扭矩、母线电压、母线电流、相电压、相电流等参数通过串口传递到电脑上用Matlab来进行BP神经网络算法的PID整定计算,再将计算得到的PID参数传给电机的驱动板,...
  • 提高android源码编译速度

    千次阅读 2014-08-17 14:00:51
    Research了一下,找到以下可以帮助提高速度的方法,总结一下。  1. 使用tmpfs来代替部分IO读写  2.ccache,可以将ccache的缓存文件设置在tmpfs上,但是这样的话,每次开机后,ccache的缓存文件会丢失  3...
  • 提高上网速度的六种方法

    千次阅读 2019-06-30 15:02:27
    因此,如何提高上网效率,节省上网费用是许多网民特关心的事情。作者在长期上网中有一些体会,在下面列出,与大家交流。  第一计选好ISP,了解自己的电话线路情况  ISP(InternetServiceProvider)提供的连接速率...
  • 校验和计算原理

    万次阅读 多人点赞 2016-09-29 17:59:40
    在发送数据时,为了计算数据包的检验。应该按如下步骤:1、把校验字段设置为0;2、把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和;3、把得到的结果存入校验字段中 在接收数据时,计算...
  • 提高数据库查询速度的方法

    万次阅读 2017-12-25 13:03:42
    处理百万级以上的数据提高查询速度的方法:  1.应尽量避免在 where 子句中使用!=或  2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  3.应尽量避免在 where ...
  • 如何提高人脸检测速度

    千次阅读 2016-08-11 10:07:38
    因此写一点相对干货多的东西,希望帮助大家。如有谬误,也请大家多加指正。   下面的内容适合正在用Boosting方法做目标检测的读者,也适合对提升算法速度感兴趣的读者。下面的这些内容,都已经应用到我们的人脸...
  • 使用SIFTRANSAC算法,完成特征点的正确匹配,并求出变换矩阵,通过变换矩阵计算出要识别物体的边界
  • 上节课我们主要介绍了如何建立一个实用的...包括Train/Dev/Test sets的比例选择,BiasVariance的概念区别:Bias对应欠拟合,Variance对应过拟合。接着,我们介绍了防止过拟合的两种方法:L2 regularization...
  • 如何提高数据库查询速度

    千次阅读 2012-08-08 22:04:40
    能够分开的操作尽量分开处理,提高每次的响应速度; 在数据窗口使用SQL时,尽量把使用的索引放在选择的首列; 算法的结构尽量简单; 在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择...
  • 数据提高查询速度的方法:

    千次阅读 2018-07-25 17:24:50
    没有索引或者没有用到索引、I/O吞吐量小、内存不足 、网络速度慢 、查询出的数据量过大、锁或者死锁、读写竞争资源、返回了不必要的行列 、查询语句不好,没有优化  可以通过如下方法来优化查询  1、把数据...
  • 提高浏览器渲染页面速度

    万次阅读 2017-03-31 13:16:07
    怎样尽可能的缩短浏览器上页面渲染的时间,可以从以下几方面着手: 写出高效的css代码 避免使用css表达式 把css文件放在页面顶部 指定页面图片的尺寸 页面头部标明文档编码 ......
  • 显卡异构计算

    千次阅读 2021-05-06 21:23:17
    显卡:将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示,是连接显示器个人计算机主板的重要组件,是“人机”的重要设备之一,其内置的并行计算能力现阶段...
  • 1. 并行计算(Parallel Computing)   并行计算或称平行计算是相对于串行计算来说的。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算计算资源应包括一台配有多...
  • 如何建立索引,提高查询速度

    万次阅读 2007-01-12 12:23:00
    ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的 性能差异,这种性能差异在大型的或是...在对 它们进行适当的优化后,其运行速度有了明显地提高!下面我
  • 处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where ...
  • 提高android源码 编译速度参考

    万次阅读 2012-08-16 17:49:07
    Research了一下,找到以下可以帮助提高速度的方法,总结一下。  1. 使用tmpfs来代替部分IO读写  2.ccache,可以将ccache的缓存文件设置在tmpfs上,但是这样的话,每次开机后,ccache的缓存文件会丢失  3...
  • sql处理百万级以上的数据提高查询速度的方法

    万次阅读 多人点赞 2016-06-14 14:39:26
    处理百万级以上的数据提高查询速度的方法:  1.应尽量避免在 where 子句中使用!=或  2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  3.应尽量避免在 where ...
  • 1.CPU的运算速度与许多因素有关,下面______是提高速度的有效措施? (1)增加CPU中寄存器的数目 (2)提高CPU的主频 (3)增加高速缓存(cache) 解答:123 2.关于 Windows 直接删除文件而不进入回收站的...
  • 提高数据库查询速度的优化方法

    千次阅读 2019-06-06 10:08:16
    15.索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引...
  • 但是公司觉得还是需要提供无人机跟随的灵敏度,并且希望在gps信号不好的情况下还进行一定程度的跟随,所以在跟飞控工程师的协商下,获取了手机的方向传感器跟加速度传感器。具体的方向传感器的意义可以参考此链接
  • 使用传统前推回代潮流算法对负荷静态电压特性变化敏感性弱的前推回代算法分别对IEEE 33节点配电系统进行测试,结果表明:不考虑PMU测量误差时,使用传统前推回代潮流算法能够保证潮流计算结果的精度并能提高计算...
  • 15.索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引...
  • 提高Fortran代码运行效率以及速度

    千次阅读 2019-03-30 11:14:04
    最近一直在研究自己的Fortran程序的运行效率,查阅了一些资料做了大量的程序测试,总结如下: 程序编写方面: 1.Module的使用:尽可能多使用 某些数组以及变量值要重复用到,比如有多个子程序需要调用,存在...
  • Web前端性能优化——如何提高页面加载速度

    万次阅读 多人点赞 2018-09-04 07:57:15
    在同样的网络环境下,两个同样满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒,99%的用户会关闭这个...
  • (四)量子计算机怎么做? (五)当前量子计算实验研究的各路高手都是谁? (六)量子计算到底难在哪?进展到哪一步了? (七)量子计算何时商业化? (八)中国的量子计算处于什么水平? (九...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 222,870
精华内容 89,148
关键字:

怎样能提高计算的速度和正确