From b3a5e3305a7f479aea0851a07e95b80088dd45e4 Mon Sep 17 00:00:00 2001 From: Abdellah El Morabit Date: Wed, 19 Nov 2025 00:58:59 +0100 Subject: [PATCH] feature: implemented hashing loop - cleaned up useless ALU.scala file - will not be passing threads as parameters --- src/main/scala/com/nsrddyn/Main.scala | 2 +- src/main/scala/com/nsrddyn/cpu/ALU/ALU.scala | 6 ----- src/main/scala/com/nsrddyn/cpu/ALU/Hash.scala | 26 ++++++++++++++++--- .../scala/com/nsrddyn/cpu/ALU/Prime.scala | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) delete mode 100644 src/main/scala/com/nsrddyn/cpu/ALU/ALU.scala diff --git a/src/main/scala/com/nsrddyn/Main.scala b/src/main/scala/com/nsrddyn/Main.scala index 3cc63a3..dd7530c 100644 --- a/src/main/scala/com/nsrddyn/Main.scala +++ b/src/main/scala/com/nsrddyn/Main.scala @@ -13,7 +13,7 @@ object Torque { val now: Instant = Instant.now() println(now) - val pr = new Prime(4) + val pr = new Prime() val intMax = 2147483647 pr.run(intMax) diff --git a/src/main/scala/com/nsrddyn/cpu/ALU/ALU.scala b/src/main/scala/com/nsrddyn/cpu/ALU/ALU.scala deleted file mode 100644 index 292676d..0000000 --- a/src/main/scala/com/nsrddyn/cpu/ALU/ALU.scala +++ /dev/null @@ -1,6 +0,0 @@ -package com.nsrddyn - -class ALU { - - -} diff --git a/src/main/scala/com/nsrddyn/cpu/ALU/Hash.scala b/src/main/scala/com/nsrddyn/cpu/ALU/Hash.scala index 7a198f7..8cd39c3 100644 --- a/src/main/scala/com/nsrddyn/cpu/ALU/Hash.scala +++ b/src/main/scala/com/nsrddyn/cpu/ALU/Hash.scala @@ -3,11 +3,29 @@ package com.nsrddyn import scala.util.hashing class Hash { - - def hashString(): Unit = { - - println("Hello from hash function") +import scala.util.hashing.MurmurHash3 + + def run(word: String, loopSize: Int): Unit = { + + /* TODO: implement ALU friendly, so high speed hashing + * to continuously loop over voor stressing + * ALU + * + * While looking for hashing algorithmes to implement I stumbled on: + * https://scala-lang.org/api/3.x/scala/util/hashing/MurmurHash3$.html + * + * which is an implemntation of **smasher** http://github.com/aappleby/smhasher + * the exact type of hashing algorithm I was looking for + * + * In the scala description they state: "This algorithm is designed to generate + * well-distributed non-cryptographic hashes. It is designed to hash data in 32 bit chunks (ints). " + * + * (ints) -> ALU + * + */ + + for i <- 0 to loopSize do MurmurHash3.stringHash(word) } } diff --git a/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala b/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala index ca73e6b..3e6ad6f 100644 --- a/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala +++ b/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala @@ -2,7 +2,7 @@ package com.nsrddyn -class Prime(threads: Int) { +class Prime() { /*