From 48618cd5f00a6b38fb62d276d5c71c3b5a23ebdfbc9b83798ebcaacc3e8ab7df Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 19 Feb 2025 17:55:27 +0300 Subject: [PATCH] Use half of cores by default --- go/cm/cmd/enctool/main.go | 3 +-- go/cm/cmd/hshtool/main.go | 3 +-- go/cm/hash/algo.go | 12 +++++++----- go/cm/sign/ed25519-blake2b/signer.go | 4 ++-- go/cm/sign/gost/signer.go | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go/cm/cmd/enctool/main.go b/go/cm/cmd/enctool/main.go index 2eeceb5..a6e6ef2 100644 --- a/go/cm/cmd/enctool/main.go +++ b/go/cm/cmd/enctool/main.go @@ -27,7 +27,6 @@ import ( "io" "log" "os" - "runtime" "strconv" "github.com/companyzero/sntrup4591761" @@ -152,7 +151,7 @@ func main() { balloonT := flag.Int("balloon-t", 4, "Balloon's time cost") balloonP := flag.Int("balloon-p", 2, "Balloon's number of threads") doDecrypt := flag.Bool("d", false, "Decrypt") - parallel := flag.Int("parallel", runtime.NumCPU(), "Parallel cryptors") + parallel := flag.Int("parallel", cmhash.DefaultNumCPU, "Parallel cryptors") noblob := flag.Bool("no-stream", false, "Include payload into container") flag.Parse() diff --git a/go/cm/cmd/hshtool/main.go b/go/cm/cmd/hshtool/main.go index d43cc4b..adac9ef 100644 --- a/go/cm/cmd/hshtool/main.go +++ b/go/cm/cmd/hshtool/main.go @@ -6,7 +6,6 @@ import ( "fmt" "log" "os" - "runtime" "go.cypherpunks.su/gogost/v6/gost34112012256" "go.cypherpunks.su/gogost/v6/gost34112012512" @@ -19,7 +18,7 @@ import ( ) func main() { - workers := flag.Int("p", runtime.NumCPU(), "Parallel workers") + workers := flag.Int("p", cmhash.DefaultNumCPU, "Parallel workers") chunkLenK := flag.Int("c", merkle.DefaultChunkLen/1024, "Chunk size, KiB") algo := flag.String("a", cmhash.BLAKE2bMerkle, "Algorithm to use") list := flag.Bool("list", false, "List available algorithms") diff --git a/go/cm/hash/algo.go b/go/cm/hash/algo.go index 3942c7b..073f1dc 100644 --- a/go/cm/hash/algo.go +++ b/go/cm/hash/algo.go @@ -44,18 +44,20 @@ const ( Streebog512Merkle = "streebog512-merkle" ) +var DefaultNumCPU = max(1, runtime.NumCPU()/2) + func ByName(name string) hash.Hash { switch name { case Streebog256, gost.GOST3410256A: return gost34112012256.New() case Streebog256Merkle, gost.GOST3410256AMerkle: return gost.NewMerkleHasher(gost34112012256.New, - merkle.DefaultChunkLen, runtime.NumCPU()) + merkle.DefaultChunkLen, DefaultNumCPU) case Streebog512, gost.GOST3410512C: return gost34112012512.New() case Streebog512Merkle, gost.GOST3410512CMerkle: return gost.NewMerkleHasher(gost34112012512.New, - merkle.DefaultChunkLen, runtime.NumCPU()) + merkle.DefaultChunkLen, DefaultNumCPU) case BLAKE2b, cmblake2b.Ed25519BLAKE2b, cmblake2b.Ed25519PhBLAKE2b: h, err := blake2b.New512(nil) if err != nil { @@ -64,7 +66,7 @@ func ByName(name string) hash.Hash { return h case BLAKE2bMerkle, cmblake2b.Ed25519PhBLAKE2bMerkle: return cmblake2b.NewMerkleHasher( - merkle.DefaultChunkLen, runtime.NumCPU()) + merkle.DefaultChunkLen, DefaultNumCPU) case BLAKE2b256: h, err := blake2b.New256(nil) if err != nil { @@ -77,10 +79,10 @@ func ByName(name string) hash.Hash { return NewSHAKE256() case SHAKE128Merkle: return NewSHAKE128MerkleHasher( - merkle.DefaultChunkLen, runtime.NumCPU()) + merkle.DefaultChunkLen, DefaultNumCPU) case SHAKE256Merkle: return NewSHAKE256MerkleHasher( - merkle.DefaultChunkLen, runtime.NumCPU()) + merkle.DefaultChunkLen, DefaultNumCPU) } return nil } diff --git a/go/cm/sign/ed25519-blake2b/signer.go b/go/cm/sign/ed25519-blake2b/signer.go index 001ab45..8e992a7 100644 --- a/go/cm/sign/ed25519-blake2b/signer.go +++ b/go/cm/sign/ed25519-blake2b/signer.go @@ -20,8 +20,8 @@ import ( "errors" "hash" "io" - "runtime" + cmhash "go.cypherpunks.su/keks/cm/hash" cmblake2b "go.cypherpunks.su/keks/cm/hash/blake2b" "go.cypherpunks.su/keks/cm/hash/merkle" "go.cypherpunks.su/keks/cm/sign/ed25519-blake2b/ed25519" @@ -50,7 +50,7 @@ func (s *Signer) SetMode(m mode.Mode) error { return nil case mode.Merkle: s.mode = m - h := cmblake2b.NewMerkleHasher(merkle.DefaultChunkLen, runtime.NumCPU()) + h := cmblake2b.NewMerkleHasher(merkle.DefaultChunkLen, cmhash.DefaultNumCPU) s.prehasher = &h return nil default: diff --git a/go/cm/sign/gost/signer.go b/go/cm/sign/gost/signer.go index 99a3a3e..27ad00e 100644 --- a/go/cm/sign/gost/signer.go +++ b/go/cm/sign/gost/signer.go @@ -20,12 +20,12 @@ import ( "errors" "hash" "io" - "runtime" "go.cypherpunks.su/gogost/v6/gost3410" "go.cypherpunks.su/gogost/v6/gost34112012256" "go.cypherpunks.su/gogost/v6/gost34112012512" + cmhash "go.cypherpunks.su/keks/cm/hash" hashgost "go.cypherpunks.su/keks/cm/hash/gost" "go.cypherpunks.su/keks/cm/hash/merkle" "go.cypherpunks.su/keks/cm/sign/mode" @@ -50,7 +50,7 @@ func (s *Signer) SetMode(m mode.Mode) error { return nil case mode.Merkle: s.mode = m - p := hashgost.NewMerkleHasher(s.NewHasher, merkle.DefaultChunkLen, runtime.NumCPU()) + p := hashgost.NewMerkleHasher(s.NewHasher, merkle.DefaultChunkLen, cmhash.DefaultNumCPU) s.prehasher = &p return nil default: -- 2.48.1