平行计算
code_tailor
这个作者很懒,什么都没留下…
展开
-
Java parallel BucketSort 3.0
除了求最值没有优化,其他做了一点优化,主要是内存的使用,但是目前跑起来还是需要 18 gigs 内存左右,因为需要对 三亿个随机整数进行排序,开了4个线程,动态开辟线程会更慢. linear_time: 14.669 secs parallel_time: 9.279 secs speed up : 1.5808815605129865 最好情况可以加速一倍,不理想!也许12个线程全开会好一些.个人感觉java不是为了高性能计算而生的,更适合做互联网应用. 个人建议不要使用线程池,会更慢!因为我们都是一锤子原创 2021-03-06 14:08:14 · 94 阅读 · 0 评论 -
Parallel Solution of the Heat Distribution Problem
热分布问题,我已经使用 cpp + Open MP + vscode 平行化 , 线性代码和平行代码产生的数据完全吻合. fit 文件请google一下,看星星. 代码里面使用了 NASA的一个插件 cfitsio-3.49.tar.gz , 主要作用是把数据写入 fit 文件,请google 查看生成的 fit 文件图,需要一个工具 SAO Img DS9, 这些好像都是用于天文学。 /home/wayne/hh.fit 1000000 9247 sequential iterations nconver原创 2021-03-01 23:29:28 · 138 阅读 · 0 评论 -
one billion sum for cpp using Open MP (VS code)
//MyTimer.cpp using namespace std; #include <iostream> #include <chrono> typedef std::chrono::high_resolution_clock Clock; typedef std::chrono::time_point<Clock> mytime_type; mytime_type start_time; void timer_start(){ st原创 2021-02-28 11:03:08 · 76 阅读 · 0 评论 -
Java parallel Bucket Sort v 3.0
public class MaxMinTool { public static int max_item(int original,int fresh_one){ return fresh_one>original?fresh_one:original; } public static int max_item(int one,int two,int three,int four){ return max_item(max_item(one,原创 2021-02-21 14:29:32 · 75 阅读 · 0 评论 -
Java parallel BucketSort -- version 2.0 (optimal,I think)
public class MyTimer { private static long begin; public static void time_start(){ begin = System.nanoTime(); } public static double time_end_milli_seconds(){ return System.nanoTime()-begin/1e6; } public static d原创 2021-02-17 17:34:19 · 106 阅读 · 2 评论 -
Java parallel Bucket Sort
public class MyTimer { private static long begin; public static void time_start(){ begin = System.nanoTime(); } public static double time_end_milli_seconds(){ return System.nanoTime()-begin/1e6; } public static d原创 2021-02-16 21:42:53 · 121 阅读 · 1 评论 -
Java linear bucket sort
public class MyTimer { private static long begin; public static void time_start(){ begin = System.nanoTime(); } public static double time_end_milli_seconds(){ return System.nanoTime()-begin/1e6; } public static d原创 2021-02-15 16:53:37 · 69 阅读 · 0 评论 -
Java 多线程平行计算总结
以下只是我的个人感受,也许有对有错。站在别人的肩膀上继续攀登,这是读者需要做的。 尽量不要让各个线程访问公有变量,也就是说不要让他们使用公共资源,因为无论怎样处理都会有线程等待的情况发生。线程就像人类一样,人人都想私有化一些东西,这样就不会有资源争抢的情况发生。 通过构造函数对线程进行初始化,使用其他方法,比如实现接口肯定会减慢速度。我们的目的是加速,而不是减速,好比赛车,要给赛车减轻重量,让它尽量跑得更快。 要建立好线程模型,尽量少用 new().这个动作。 Java for 循环里面建立线程原创 2021-02-14 23:26:01 · 176 阅读 · 0 评论 -
Java parallel programming to calculate PI using Dart algorithm
study it, I don’t want to explain too much about these code segment. Starting from : public class TestDartThread at the end of this article. you can change long num_trails = 1000000000 to make it shorter according to your hardware. public class MyTimer {原创 2021-02-14 19:12:38 · 121 阅读 · 2 评论 -
Java parallel programming to sum long number
以下代码是我写的,思路基于 上一篇,再次证明 for 循环有点耗费时间。一旦使用了for 循环创建线程,我们无法得到大于 1 的加速比, 也就是说,平行化失败! class MyTimer { private static long begin; public static void time_start(){ begin = System.nanoTime(); } public static double time_end_milli_secon原创 2021-02-14 17:23:52 · 105 阅读 · 0 评论 -
Java parallel programming to calculate PI
Java parallel programming to calculate PI /** 我在研究Java平行计算的时候,遇到了一些问题,虽然我觉得平行计算最佳选择还是 cpp or c. 从 MPI 到 Open mp,再有就是 cuda. 我尝试用java计算PI值,线性代码没有问题(因为我们采用的是dart 方法,从cpp移植过来的)。 但是,按照cpp的平行计算思维 使用java出现了问题,问题就是:无法加速,也就是加速比都小于1,基本在 0.6 左右震荡. 我后来搜到了如下的代码,给了我提示,要转载 2021-02-14 11:05:44 · 69 阅读 · 0 评论