You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2018/02/13 22:27:02 UTC
[05/14] commons-rng git commit: "commons-rng-jmh" moved as sub-module
of "commons-rng-examples".
http://git-wip-us.apache.org/repos/asf/commons-rng/blob/312abc0e/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/SamplersPerformance.java
----------------------------------------------------------------------
diff --git a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/SamplersPerformance.java b/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/SamplersPerformance.java
deleted file mode 100644
index b438b57..0000000
--- a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/SamplersPerformance.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.rng.jmh.distribution;
-
-import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.BenchmarkMode;
-import org.openjdk.jmh.annotations.Mode;
-import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.annotations.Measurement;
-import org.openjdk.jmh.annotations.State;
-import org.openjdk.jmh.annotations.Fork;
-import org.openjdk.jmh.annotations.Scope;
-import org.openjdk.jmh.annotations.Param;
-import org.openjdk.jmh.annotations.Setup;
-import org.openjdk.jmh.annotations.OutputTimeUnit;
-import org.openjdk.jmh.infra.Blackhole;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.simple.RandomSource;
-import org.apache.commons.rng.sampling.distribution.ContinuousSampler;
-import org.apache.commons.rng.sampling.distribution.DiscreteSampler;
-import org.apache.commons.rng.sampling.distribution.BoxMullerNormalizedGaussianSampler;
-import org.apache.commons.rng.sampling.distribution.MarsagliaNormalizedGaussianSampler;
-import org.apache.commons.rng.sampling.distribution.ZigguratNormalizedGaussianSampler;
-import org.apache.commons.rng.sampling.distribution.AhrensDieterExponentialSampler;
-import org.apache.commons.rng.sampling.distribution.AhrensDieterMarsagliaTsangGammaSampler;
-import org.apache.commons.rng.sampling.distribution.LogNormalSampler;
-import org.apache.commons.rng.sampling.distribution.ChengBetaSampler;
-import org.apache.commons.rng.sampling.distribution.ContinuousUniformSampler;
-import org.apache.commons.rng.sampling.distribution.DiscreteUniformSampler;
-import org.apache.commons.rng.sampling.distribution.RejectionInversionZipfSampler;
-import org.apache.commons.rng.sampling.distribution.PoissonSampler;
-
-/**
- * Executes benchmark to compare the speed of generation of random numbers
- * from the various source providers.
- */
-@BenchmarkMode(Mode.AverageTime)
-@OutputTimeUnit(TimeUnit.MICROSECONDS)
-@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
-@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
-@State(Scope.Benchmark)
-@Fork(value = 1, jvmArgs = {"-server", "-Xms128M", "-Xmx128M"})
-public class SamplersPerformance {
- /** Number of samples per run. */
- private static final int NUM_SAMPLES = 10000000;
-
- /**
- * The benchmark state (retrieve the various "RandomSource"s).
- */
- @State(Scope.Benchmark)
- public static class Sources {
- /**
- * RNG providers.
- */
- @Param({"JDK",
- "WELL_512_A",
- "WELL_1024_A",
- "WELL_19937_A",
- "WELL_19937_C",
- "WELL_44497_A",
- "WELL_44497_B",
- "MT",
- "ISAAC",
- "SPLIT_MIX_64",
- "MWC_256",
- "KISS",
- "XOR_SHIFT_1024_S",
- "TWO_CMRES",
- "MT_64" })
- private String randomSourceName;
-
- /** RNG. */
- private UniformRandomProvider generator;
-
- /**
- * @return the RNG.
- */
- public UniformRandomProvider getGenerator() {
- return generator;
- }
-
- /** Intantiates generator. */
- @Setup
- public void setup() {
- final RandomSource randomSource = RandomSource.valueOf(randomSourceName);
- generator = RandomSource.create(randomSource);
- }
- }
-
- /**
- * Exercises a continuous sampler.
- *
- * @param sampler Sampler.
- * @param bh Data sink.
- */
- private void runSample(ContinuousSampler sampler,
- Blackhole bh) {
- for (int i = 0; i < NUM_SAMPLES; i++) {
- bh.consume(sampler.sample());
- }
- }
-
- /**
- * Exercises a discrete sampler.
- *
- * @param sampler Sampler.
- * @param bh Data sink.
- */
- private void runSample(DiscreteSampler sampler,
- Blackhole bh) {
- for (int i = 0; i < NUM_SAMPLES; i++) {
- bh.consume(sampler.sample());
- }
- }
-
- // Benchmarks methods below.
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runBoxMullerNormalizedGaussianSampler(Sources sources,
- Blackhole bh) {
- runSample(new BoxMullerNormalizedGaussianSampler(sources.getGenerator()), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runMarsagliaNormalizedGaussianSampler(Sources sources,
- Blackhole bh) {
- runSample(new MarsagliaNormalizedGaussianSampler(sources.getGenerator()), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runZigguratNormalizedGaussianSampler(Sources sources,
- Blackhole bh) {
- runSample(new ZigguratNormalizedGaussianSampler(sources.getGenerator()), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runAhrensDieterExponentialSampler(Sources sources,
- Blackhole bh) {
- runSample(new AhrensDieterExponentialSampler(sources.getGenerator(), 4.56), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runAhrensDieterMarsagliaTsangGammaSampler(Sources sources,
- Blackhole bh) {
- runSample(new AhrensDieterMarsagliaTsangGammaSampler(sources.getGenerator(), 9.8, 0.76), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runBoxMullerLogNormalSampler(Sources sources,
- Blackhole bh) {
- runSample(new LogNormalSampler(new BoxMullerNormalizedGaussianSampler(sources.getGenerator()), 12.3, 4.6), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runMarsagliaLogNormalSampler(Sources sources,
- Blackhole bh) {
- runSample(new LogNormalSampler(new MarsagliaNormalizedGaussianSampler(sources.getGenerator()), 12.3, 4.6), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runZigguratLogNormalSampler(Sources sources,
- Blackhole bh) {
- runSample(new LogNormalSampler(new ZigguratNormalizedGaussianSampler(sources.getGenerator()), 12.3, 4.6), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runChengBetaSampler(Sources sources,
- Blackhole bh) {
- runSample(new ChengBetaSampler(sources.getGenerator(), 0.45, 6.7), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runContinuousUniformSampler(Sources sources,
- Blackhole bh) {
- runSample(new ContinuousUniformSampler(sources.getGenerator(), 123.4, 5678.9), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runDiscreteUniformSampler(Sources sources,
- Blackhole bh) {
- runSample(new DiscreteUniformSampler(sources.getGenerator(), -98, 76), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runRejectionInversionZipfSampler(Sources sources,
- Blackhole bh) {
- runSample(new RejectionInversionZipfSampler(sources.getGenerator(), 43, 2.1), bh);
- }
-
- /**
- * @param sources Source of randomness.
- * @param bh Data sink.
- */
- @Benchmark
- public void runPoissonSampler(Sources sources,
- Blackhole bh) {
- runSample(new PoissonSampler(sources.getGenerator(), 8.9), bh);
- }
-}
http://git-wip-us.apache.org/repos/asf/commons-rng/blob/312abc0e/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/package-info.java
----------------------------------------------------------------------
diff --git a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/package-info.java b/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/package-info.java
deleted file mode 100644
index ab7f0f6..0000000
--- a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/distribution/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Benchmarks for samplers.
- */
-
-package org.apache.commons.rng.jmh.distribution;
http://git-wip-us.apache.org/repos/asf/commons-rng/blob/312abc0e/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/package-info.java
----------------------------------------------------------------------
diff --git a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/package-info.java b/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/package-info.java
deleted file mode 100644
index 7421808..0000000
--- a/commons-rng-jmh/src/main/java/org/apache/commons/rng/jmh/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * <h3>Performance benchmarks</h3>
- *
- * <p>
- * This package contains code to perform a
- * <a href="http://openjdk.java.net/projects/code-tools/jmh">JMH</a> run.
- * </p>
- */
-
-package org.apache.commons.rng.jmh;