Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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
        }
Example #5
0
        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);
        }
Example #6
0
        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
        }
Example #7
0
        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);
        }
Example #8
0
        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
        }
Example #9
0
        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
        }
Example #10
0
        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
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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);
        }
Example #16
0
        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);
        }
Example #17
0
		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);
		}