commit 76a73f5d130c9b71f4842357a5ab6f0c2fee98a1
parent 06438c522d03a3ff2ade9e2a339674479af02030
Author: NunoSempere <nuno.sempere@protonmail.com>
Date: Fri, 16 Feb 2024 14:48:39 +0100
go: add goroutines usage. But randomness still to be fixed
Diffstat:
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/go/squiggle.go b/go/squiggle.go
@@ -2,6 +2,7 @@ package main
import "fmt"
import "math"
+import "sync"
import rand "math/rand/v2"
var r = rand.New(rand.NewPCG(1, 2))
@@ -111,17 +112,36 @@ func main() {
var xs3 = xs[750_000:1_000_000]
model := func() float64 { return sample_mixture(fs[0:], ws[0:]) }
- slice_fill(xs0, model)
- slice_fill(xs1, model)
- slice_fill(xs2, model)
- slice_fill(xs3, model)
+ var wg sync.WaitGroup
+
+ wg.Add(4)
+ // Note: these should have different randomness functions!!
+ go func() {
+ defer wg.Done()
+ slice_fill(xs0, model)
+ }()
+ go func() {
+ defer wg.Done()
+ slice_fill(xs1, model)
+ }()
+ go func() {
+ defer wg.Done()
+ slice_fill(xs2, model)
+ }()
+ go func() {
+ defer wg.Done()
+ slice_fill(xs3, model)
+ }()
+
+ wg.Wait()
var avg float64 = 0
for _, x := range xs {
avg += x
}
avg = avg / float64(n_samples)
fmt.Printf("Average: %v\n", avg)
+
/*
var avg float64 = 0