public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { using (Stream s = new MemoryStream()) { using var stream = new CryptoStream(s, new HMACSHA512(), CryptoStreamMode.Write); using var sw = new StreamWriter(stream); sw.Write(datas[i1]); sw.Flush(); stream.Flush(); } using (var aes = new AesGcm(aesKey)) { var cipher = new byte[datas[i1].Length]; var tag = new byte[16]; aes.Encrypt(aesNonce, Encoding.UTF8.GetBytes(datas[i1]), cipher, tag); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { using (Stream s = new MemoryStream()) { using var stream = new DeflaterOutputStream(s, new Deflater(Deflater.BEST_COMPRESSION)); using var sw = new StreamWriter(stream); sw.Write(datas[i1]); sw.Flush(); stream.Finish(); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { for (var j = 0; j < numberOfIterations; j++) { using Stream s = new MemoryStream(); using var sw = new StreamWriter(s); sw.Write(datas[i1]); sw.Flush(); s.Seek(0, SeekOrigin.Begin); using var stream = new ZipInputStream(s); var zipEntry = stream.GetNextEntry(); zipEntry.DateTime = DateTime.Now; } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { #if NETCOREAPP3_0 if (!Sse42.IsSupported) { return; } var threads = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var iterations = numberOfIterations / options.Threads; for (var j = 0; j < iterations; j++) { CRC32C(); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(threads); #else return; #endif }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { using (Stream s = new MemoryStream()) { using var stream = new ZipOutputStream(s); stream.SetLevel(9); stream.PutNextEntry(new ZipEntry("test.txt")); using var sw = new StreamWriter(stream); sw.Write(datas[i1]); sw.Flush(); stream.CloseEntry(); stream.Finish(); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { #if NETCOREAPP3_0 if (!Sse.IsSupported) { return; } var threads = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var randomFloatingSpan = new Span <float>(new[] { randomFloatingNumber }); var dst = new Span <float>(new float[256]); var iterations = numberOfIterations / options.Threads; for (var j = 0; j < iterations; j++) { AddScalarU(randomFloatingSpan, dst); MultiplyScalarU(randomFloatingSpan, dst); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(threads); #else return; #endif }
public override void Run() { var threads = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, TestLatency); } Task.WaitAll(threads); }
public override ulong Stress(CancellationToken cancellationToken) { #if NETCOREAPP3_0 if (!Sse41.IsSupported) { return(0uL); } var threads = new Task[options.Threads]; var completed = 0uL; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var threadCompleted = 0uL; var randomFloatingSpan = new Span <float>(new[] { randomFloatingNumber }); var data = new float[256]; Array.Fill(data, randomFloatingNumber); var dst = new Span <float>(data); while (!cancellationToken.IsCancellationRequested) { DotProductU(randomFloatingSpan, dst); dst.Clear(); threadCompleted++; } lock (threads) { completed += threadCompleted; } }, ThreadPriority.BelowNormal); } Task.WaitAll(threads); return(completed / numberOfIterations); #else return(0uL); #endif }
public override ulong Stress(CancellationToken cancellationToken) { #if NETCOREAPP3_0 if (!Sse42.IsSupported) { return(0uL); } var threads = new Task[options.Threads]; var completed = 0uL; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var threadCompleted = 0uL; while (!cancellationToken.IsCancellationRequested) { var crc = 0uL; foreach (var character in datas) { crc = Sse42.X64.Crc32(crc, character); } threadCompleted++; } lock (threads) { completed += threadCompleted; } }); } Task.WaitAll(threads); return(completed / numberOfIterations); #else return(0uL); #endif }
public override ulong Stress(CancellationToken cancellationToken) { #if NETCOREAPP3_0 if (!Sse2.IsSupported) { return(0uL); } var threads = new Task[options.Threads]; var completed = 0uL; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var threadCompleted = 0uL; var randomIntegerSpan = new Span <uint>(new[] { randomIntegerNumber }); var dst = new Span <uint>(new uint[256]); while (!cancellationToken.IsCancellationRequested) { AddScalarU(randomIntegerSpan, dst); MultiplyScalarU(randomIntegerSpan, dst); dst.Clear(); threadCompleted++; } lock (threads) { completed += threadCompleted; } }, ThreadPriority.BelowNormal); } Task.WaitAll(threads); return(completed / numberOfIterations); #else return(0uL); #endif }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { for (var j = 0; j < runs; j++) { using (Stream s = new MemoryStream()) { using var stream = new CryptoStream(s, new HMACSHA512(sha512Key), CryptoStreamMode.Read); using var sw = new StreamWriter(s); sw.Write(datasSHA[i1]); sw.Flush(); stream.Flush(); stream.FlushFinalBlock(); s.Seek(0, SeekOrigin.Begin); using var sr = new StreamReader(stream); sr.ReadToEnd(); } using var aes = new AesGcm(aesKey); var plaintext = new byte[datasAES[i1].Length]; aes.Decrypt(aesNonce, datasAES[i1], aesTag[i1], plaintext); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { using (Stream s = new MemoryStream(datas[i1])) { using var stream = new InflaterInputStream(s); using var sr = new StreamReader(stream); sr.ReadToEnd(); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var threads = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { threads[i] = ThreadAffinity.RunAffinity(1uL << i, () => { var data = new byte[volume / options.Threads]; var csrpng = RandomNumberGenerator.Create(); for (var j = 0; j < numberOfIterations; j++) { csrpng.GetBytes(data); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(threads); }
public override void Run() { var threads = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; threads[i1] = ThreadAffinity.RunAffinity(1uL << i, () => { for (var i = 0; i < volume / options.Threads; i++) { var doc = JsonConvert.DeserializeObject <Save>(JSONFile.File); doc.MachineInformation.Cpu.Name = "Serialized"; } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(threads); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { using (Stream s = new MemoryStream()) { using var stream = new CryptoStream(s, SHA256.Create(), CryptoStreamMode.Write); using var sw = new StreamWriter(stream); sw.Write(datas[i1]); sw.Flush(); stream.Flush(); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { // LOAD for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] = randomFloat; } // ADD for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] += randomFloat; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] += randomFloat; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] += randomFloat; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] += randomFloat; } // SUBTRACT for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] -= randomFloat; } // MULTIPLY for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] *= randomFloat; } // DIVIDE for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] /= randomFloat; } // MODULO for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { floatArray[j] %= randomFloat; } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }
public override void Run() { var tasks = new Task[options.Threads]; for (var i = 0; i < options.Threads; i++) { var i1 = i; tasks[i] = ThreadAffinity.RunAffinity(1uL << i, () => { // LOAD for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] = randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] = randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] = randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] = randomLong; } // ADD for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] += randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] += randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] += randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] += randomLong; } // SUBTRACT for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] -= randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] -= randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] -= randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] -= randomLong; } // MULTIPLY for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] *= randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] *= randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] *= randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] *= randomLong; } // DIVIDE for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] /= randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] /= randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] /= randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] /= randomLong; } // MODULO for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] %= randomByte; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] %= randomShort; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] %= randomInt; } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] %= randomLong; } // VARIOUS for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultByteArray[j] = Math.Max(randomByte, resultByteArray[j]); } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultShortArray[j] = Math.Min(randomShort, resultShortArray[j]); } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultIntArray[j] = (int) Math.BigMul(randomInt, randomInt); } for (var j = 0 + i1 * (LENGTH / options.Threads); j < LENGTH / options.Threads; j++) { resultLongArray[j] = Math.BigMul(randomInt, randomInt); } BenchmarkRunner.ReportProgress(); }); } Task.WaitAll(tasks); }