correct squiggle time
This commit is contained in:
parent
a5e0da8cd4
commit
05b1b99561
|
@ -29,7 +29,7 @@ The name of this repository is a pun on two meanings of "time to": "how much tim
|
||||||
| Nim | 40.8ms | 84 |
|
| Nim | 40.8ms | 84 |
|
||||||
| Lua (LuaJIT) | 69.9ms | 82 |
|
| Lua (LuaJIT) | 69.9ms | 82 |
|
||||||
| OCaml (flambda) | 187.9ms | 123 |
|
| OCaml (flambda) | 187.9ms | 123 |
|
||||||
| Squiggle (bun) | 0.538s | 14* |
|
| Squiggle (bun) | 0.387s | 14* |
|
||||||
| Javascript (node) | 0.445s | 69 |
|
| Javascript (node) | 0.445s | 69 |
|
||||||
| SquigglePy (v0.27) | 1.507s | 18* |
|
| SquigglePy (v0.27) | 1.507s | 18* |
|
||||||
| R (3.6.1) | 4.508s | 49 |
|
| R (3.6.1) | 4.508s | 49 |
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
OUTPUT=./samples
|
OUTPUT=./samples
|
||||||
|
|
||||||
|
build:
|
||||||
|
gcc -O3 samples.c ./squiggle_c/squiggle.c ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
rm -r squiggle_c
|
rm -r squiggle_c
|
||||||
git clone https://git.nunosempere.com/personal/squiggle.c
|
git clone https://git.nunosempere.com/personal/squiggle.c
|
||||||
|
@ -8,9 +11,6 @@ install:
|
||||||
cp -r squiggle_c/examples/more/12_time_to_botec_parallel/example.c samples.c
|
cp -r squiggle_c/examples/more/12_time_to_botec_parallel/example.c samples.c
|
||||||
sed -i 's|../../..|squiggle_c|' samples.c
|
sed -i 's|../../..|squiggle_c|' samples.c
|
||||||
|
|
||||||
build:
|
|
||||||
gcc -O3 samples.c ./squiggle_c/squiggle.c ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT)
|
|
||||||
|
|
||||||
time-linux:
|
time-linux:
|
||||||
@echo "Running 100x and taking avg time: OMP_NUM_THREADS=16 $(OUTPUT)"
|
@echo "Running 100x and taking avg time: OMP_NUM_THREADS=16 $(OUTPUT)"
|
||||||
@t=$$(/usr/bin/time -f "%e" -p bash -c 'for i in {1..100}; do OMP_NUM_THREADS=16 $(OUTPUT); done' 2>&1 >/dev/null | grep real | awk '{print $$2}' ); echo "scale=2; 1000 * $$t / 100" | bc | sed "s|^|Time using 16 threads: |" | sed 's|$$|ms|' && echo
|
@t=$$(/usr/bin/time -f "%e" -p bash -c 'for i in {1..100}; do OMP_NUM_THREADS=16 $(OUTPUT); done' 2>&1 >/dev/null | grep real | awk '{print $$2}' ); echo "scale=2; 1000 * $$t / 100" | bc | sed "s|^|Time using 16 threads: |" | sed 's|$$|ms|' && echo
|
||||||
|
|
|
@ -248,18 +248,18 @@ make tidy
|
||||||
|
|
||||||
It emits one warning about something I already took care of, so by default I've suppressed it. I think this is good news in terms of making me more confident that this simple library is correct :).
|
It emits one warning about something I already took care of, so by default I've suppressed it. I think this is good news in terms of making me more confident that this simple library is correct :).
|
||||||
|
|
||||||
### Division between core functions and extraneous expansions
|
### Division between core functions and squiggle_moreneous expansions
|
||||||
|
|
||||||
This library differentiates between core functions, which are pretty tightly scoped, and expansions and convenience functions, which are more meandering. Expansions are in `extra.c` and `extra.h`. To use them, take care to link them:
|
This library differentiates between core functions, which are pretty tightly scoped, and expansions and convenience functions, which are more meandering. Expansions are in `squiggle_more.c` and `squiggle_more.h`. To use them, take care to link them:
|
||||||
|
|
||||||
```
|
```
|
||||||
// In your C source file
|
// In your C source file
|
||||||
#include "extra.h"
|
#include "squiggle_more.h"
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
# When compiling:
|
# When compiling:
|
||||||
gcc -std=c99 -Wall -O3 example.c squiggle.c extra.c -lm -o ./example
|
gcc -std=c99 -Wall -O3 example.c squiggle.c squiggle_more.c -lm -o ./example
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -290,6 +290,13 @@ Behaviour on error can be toggled by the `EXIT_ON_ERROR` variable. This library
|
||||||
|
|
||||||
Overall, I'd describe the error handling capabilities of this library as pretty rudimentary. For example, this program might fail in surprising ways if you ask for a lognormal with negative standard deviation, because I haven't added error checking for that case yet.
|
Overall, I'd describe the error handling capabilities of this library as pretty rudimentary. For example, this program might fail in surprising ways if you ask for a lognormal with negative standard deviation, because I haven't added error checking for that case yet.
|
||||||
|
|
||||||
|
## Extra: confidence intervals
|
||||||
|
|
||||||
|
// to do
|
||||||
|
|
||||||
|
## Extra paralellism
|
||||||
|
|
||||||
|
// to do
|
||||||
|
|
||||||
## Related projects
|
## Related projects
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user