文件名称:mandelbrot:使用各种并行度绘制Mandelbrot集的Rust程序
文件大小:9KB
文件格式:ZIP
更新时间:2024-05-24 14:57:32
Rust
平行Mandelbrot集绘图仪 该程序绘制Mandelbrot集并将其写为PNG文件。 它使用Rust的并发原语在8个线程之间分配工作。 不同的提交显示了不同的实现策略: 是程序的基本版本。 它在主线程上完成所有工作。 将绘图区域分为八个带,并为每个带分配一个线程。 这通常会使线程使用效率低下,因为完成某些频段需要比其他频段花费更长的时间:一旦快速线程完成了频段,其CPU就会闲置,而不幸的弟兄们仍在努力工作。 从其线程中获得了近乎完美的线性加速。 它将绘图区域划分为更多的带,然后使线程从一个公共池中绘制带,直到池为空。 线程完成一个带区时,它会返回以进行更多工作。 由于频段仍然需要花费不同的渲染时间,因此上面提到的问题仍然会发生,但是规模要小得多。 使用Rust的原子类型来实现无锁的迭代器类型,并使用它从池中释放频带,而不是互斥锁保护的计数。 在Linux上,这是没有比基于互斥
【文件预览】:
mandelbrot-master
----.gitignore(13B)
----src()
--------main.rs(7KB)
----Cargo.lock(21KB)
----Cargo.toml(174B)
----LICENSE-MIT(1023B)
----README.md(2KB)