多核Android

多核Android,第1张

概述我已经运行了简单的并行算法绘制mandelbrot集来测试Nexus 7(Tegra 3,4 4核)上的并行计算.在运行几次之后,我获得1.5秒的串行和1.0的并行,但并行和串行在1.3秒时非常接近.方块是700x700像素,我使用的mandelbrot代码来自http://rosettacode.org/wiki/Mandelbrot_set#Java并行

我已经运行了简单的并行算法绘制mandelbrot集来测试Nexus 7(Tegra 3,4 4核)上的并行计算.在运行几次之后,我获得1.5秒的串行和1.0的并行,但并行和串行在1.3秒时非常接近.

方块是700×700像素,我使用的mandelbrot代码来自

http://rosettacode.org/wiki/Mandelbrot_set#Java

并行实现像这样运行两半mandelbrot

    public voID mandelbrotParallel() {    Thread t1 = new Thread(new Runnable() {        public voID run() {            mandelbrotOne();        }    });    Thread t2 = new Thread(new Runnable() {        public voID run() {            mandelbrotTwo();        }    });    t1.start();    t2.start();    try {        t1.join();        t2.join();    } catch (InterruptedException e) {        // Todo auto-generated catch block        e.printstacktrace();    }    mHandler.post(new Runnable() {        public voID run() {            v.setBmp(bmp);            v.invalIDate();        }    });}

我之前运行过一个简单的向量,并发现了类似的轶事结果(没有科学严谨性).所以我想知道是否有任何特殊的事情要让AndroID启动多个内核来完成任务.

基于与谷歌的快速对话,可能是核心处于休眠状态并等待计算在核心打开之前真正长时间运行(多秒)……这是真的吗?如果是这样,是否有来自Java(没有JNI)的API调用可以预先唤醒核心?

最佳答案这听起来像RenderScript的候选者.简而言之,它允许您进行计算上昂贵的 *** 作,利用所有可用的加速资源(多核,GPU计算,dsp等).来自文档:

Renderscript gives your apps the ability to run operations with
automatic parallelization across all available processor cores. It
also supports different types of processors such as the cpu,GPU or
DSP. Renderscript is useful for apps that do image processing,
mathematical modeling,or any operations that require lots of
mathematical computation.

你必须用C语言重写你的Mandelbrot代码,但你不必将它分成几部分,因为并行化将为你处理.

使用AndroID代码中的RenderScript很简单,如here所述. 总结

以上是内存溢出为你收集整理的多核Android全部内容,希望文章能够帮你解决多核Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1140227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存