Crates.io | tracer |
lib.rs | tracer |
version | 0.1.0 |
source | src |
created_at | 2015-02-11 07:44:25.224771 |
updated_at | 2015-12-11 23:59:11.698689 |
description | A pet raytracer to test overall pseudo-performance and multi-threading |
homepage | |
repository | https://github.com/Byron/rust-tracer |
max_upload_size | |
id | 1379 |
size | 49,005 |
Following cinematic success stories such as The SHA1 Performance Quest, there is yet another quest for performance, seeking out benchmark results that no man has seen before !
It's stardate 20.15.01.31, in a universe ruled by nimble Gophers and ancient Ceepeporg, a universe where the production of RaySpheres™ is the only goal, the faster, the better. Meet the Rustaceans, a young species, and follow them on their curious quest for independence and for producing the most RaySperes in the universe.
Make sure you have gcc installed as well as go for the respective version. Then it's the following to produce images and time them. Please note that they will only use one core by default - the cpp version doesn't impelement multi-threading.
make -C src/go image
make -C src/cpp image
# Use more cores with go implementation to witness speedup
GOMAXPROCS=4 make src/go image
Arc
. The latter is a reference counted item on the heap.Arc<Mutex<R>>
to allow synchronized access.The go
based raytracer was originally written by Jack Palevich. For more information, see http://grammerjack.blogspot.com/2009/11/multi-threaded-go-raytracer.html.