http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/apache/pirk/utils/SystemConfiguration$1.class ---------------------------------------------------------------------- diff --git a/target/classes/org/apache/pirk/utils/SystemConfiguration$1.class b/target/classes/org/apache/pirk/utils/SystemConfiguration$1.class new file mode 100644 index 0000000..97977d4 Binary files /dev/null and b/target/classes/org/apache/pirk/utils/SystemConfiguration$1.class differ
http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/apache/pirk/utils/SystemConfiguration.class ---------------------------------------------------------------------- diff --git a/target/classes/org/apache/pirk/utils/SystemConfiguration.class b/target/classes/org/apache/pirk/utils/SystemConfiguration.class new file mode 100644 index 0000000..4f7f142 Binary files /dev/null and b/target/classes/org/apache/pirk/utils/SystemConfiguration.class differ http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType.class ---------------------------------------------------------------------- diff --git a/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType.class b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType.class new file mode 100644 index 0000000..c8a9d21 Binary files /dev/null and b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType.class differ http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B1.class ---------------------------------------------------------------------- diff --git a/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B1.class b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B1.class new file mode 100644 index 0000000..92ca397 Binary files /dev/null and b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B1.class differ http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B2.class ---------------------------------------------------------------------- diff --git a/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B2.class b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B2.class new file mode 100644 index 0000000..f466872 Binary files /dev/null and b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B2.class differ http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B3.class ---------------------------------------------------------------------- diff --git a/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B3.class b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B3.class new file mode 100644 index 0000000..6e3219f Binary files /dev/null and b/target/classes/org/openjdk/jmh/infra/generated/Blackhole_jmhType_B3.class differ http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/pirk.properties ---------------------------------------------------------------------- diff --git a/target/classes/pirk.properties b/target/classes/pirk.properties new file mode 100644 index 0000000..aee87ad --- /dev/null +++ b/target/classes/pirk.properties @@ -0,0 +1,239 @@ +############################################################################### +# 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. +############################################################################### + +## +## Default System Configuration Properties +## + +#Name of the local properties file - used when running with the +#hadoop jar command +local.pirk.properties=/root/ + +## +##Spark path for SparkLauncher +## +spark.home = /usr + +## +## Data schema properties +## +## Each data schema should be specified in an xml file of the form: +## +##<schema> +## <schemaName> name of the schema </schemaName> +## <element> +## <name> element name </name> +## <type> class name or type name (if Java primitive type) of the element </type> +## <isArray> true or false -- whether or not the schema element is an array within the data </isArray> +## <partitioner> optional - Partitioner class for the element; defaults to primitive java type partitioner </partitioner> +## </element> +## </schema> +## +## Primitive Java types must be one of the following: "byte", "short", "int", "long", "float", +## "double", "char", "string", "boolean" +## + +#Comma separated list of local data schema files to load, fully qualified file names +data.schemas = none + +## +## Query schema properties +## +## Each query schema should be specified in an xml file of the form; +## all items are treated in a case insensitive manner: +## +##<schema> +## <schemaName> name of the schema </schemaName> +## <dataSchemaName> name of the data schema over which this query is run </dataSchemaName> +## <selectorName> name of the element in the data schema that will be the selector </selectorName> +## <elements> +## <name> element name of element in the data schema to include in the query response </name> +## </elements> +## <filter> (optional) name of the filter class to use to filter the data </filter> +## <filterNames> +## <name> (optional) element name of element in the data schema to apply pre-processing filters </name> +## </filterNames> +## </schema> +## +## + +#Comma separated list of local query schema files to load, fully qualified file names +query.schemas = none + +## +##Properties for ElasticSearch compatibility +## + +#ES host address - One Elasticsearch node in the cluster - may include port specification +es.nodes= none + +#Default HTTP/REST port used for connecting to Elasticsearch +es.port=9200 + +#Number of results/items returned by each individual scroll +es.scroll.size = 1000 + +#Whether elasticsearch-hadoop will treat empty fields as null +es.field.read.empty.as.null=yes + + +## +##Properties for functional testing +## + +#Test index to create in ES (created and deleted within the tests) +#Need final form to be: <host>:<port>/<test.esTestIndex> +test.es.index = testindex +test.pir.es.index = testindexpir + +#Type of elements to insert in ES +test.es.type = pkt + +#Elasticsearch resource - Elasticsearch resource location where data is read and written to. +#Requires the format <index>/<type> +test.es.resource= none +test.pir.es.resource = none + +#Pathname in hdfs to place input JSON file testing +test.inputJSONFile = none +test.pir.inputJSONFile = /tmp/testJSONInput + +#Pathname in hdfs to place output file for testing +test.outputHDFSFile = /tmp/testOutput + +#PIR query input dir in hdfs for testing +test.pir.queryInputDir = none + +#PIR stoplist file +test.pir.stopListFile = /tmp/testStopListFile + +#Whether or not we are running PIR testing (used as a flag to dump intermediate RDDs for checking) +#This should default to false; it is changed to true in the test suite, as applicable +pir.test = false + +#HDFS output dir for PIR intermediate testing +#Should default to none; changed to a real hdfs path in the test suite, as applicable +pir.testOut = none + + +## +## Properties to enable/disable JNA-GMP modPow acceleration for Paillier +## + +paillier.useGMPForModPow = true + +# The JNA-GMP library we use to invoke the much faster, natively compiled GMP +# can be called in a way that tries to make all modPow calls take a constant amount +# of time to execute. This will slow down the modPow performance (still better than +# Java's BigInteger.modPow() ). +# If you are using this package in a multi-tenant computing environment and have +# concerns about other tenants being able to closely inspect the runtime of your +# software, you may want to enable this property. +paillier.GMPConstantTimeMode = false + +# This property controls the more rigorous prime generation checks in PrimeMaker.java +# which are based on FIPS SP 800-56B and FIPS 186-4 (extra Miller-Rabin rounds, limits +# on how close the primes p and q can be, and bounds on the values of the primes) +# These checks slow down prime generation considerably +pallier.FIPSPrimeGenerationChecks = true + +## These properties control the secure random number generator algorithm and provider. +## You can specify just the algorithm, or both algorithm and provider. The system's +## default secure random is used when the algorithm is left unspecified. +pallier.secureRandom.algorithm=NativePRNG +#pallier.secureRandom.provider=SUN + +## +## Properties for PIR query and response +## + +#Number of bits to return when encoding/returning string values as part of return data elements +pir.stringBits = 64 + +#Number of array elements to return when encoding/returning array valued elements +pir.numReturnArrayElements = 2 + +#Default prime certainty +pir.primeCertainty = 128 + +#Fully qualified dir in hdfs of Query files +pir.queryInput = none + +#Data input format type -- 'base' or 'elasticsearch' (given in InputFormatsConst class) +pir.dataInputFormat = base + +#Fully qualified name of input file/directory in hdfs; used if pir.dataInputFormat = base +pir.inputData = none + +#Inputformat for 'base' data input format type -- must extend BaseInputFormat +pir.baseInputFormat = none + +#ElasticSearch-like query if using 'base' input format +pir.baseQuery = none + +#ES resource for input data +pir.esResource = null + +#ES query for input data +pir.esQuery = none + +#Fully qualified name of output file in hdfs +pir.outputFile = none + +#Fully qualified dir in hdfs of file containing stoplist terms +pir.stopListFile = stopListFile + +#Number of reduce tasks +pir.numReduceTasks = 100 + +#Whether or not to use the local cache during PIR computations +pir.useLocalCache = true + +#Whether or not to limit the hits for each query term +pir.limitHitsPerSelector = true + +#Number of hits to limit for each query term, if pir.limitHitsPerSelector = true +pir.maxHitsPerSelector = 100 + +#Whether or not to embed the selector in the results for false positive reduction +pir.embedSelector = true + +#Whether or not to generate and use the HDFS modular exponentiation lookup table +pir.useHDFSLookupTable = false + +#Number of partitions to coalesce the input data into in Spark +pir.numDataPartitions = 1500 + +#Mapreduce memory options +mapreduce.map.memory.mb = 3000 +mapreduce.reduce.memory.mb = 3000 +mapreduce.map.java.opts = -Xmx2800m +mapreduce.reduce.java.opts = -Xmx2800m + +#HDFS directory for the expLookupTable +pir.expDir = none + +#Parallelism for expLookupTable creation in hdfs +pir.expCreationSplits = 600 + + + + + + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/querier.properties ---------------------------------------------------------------------- diff --git a/target/classes/querier.properties b/target/classes/querier.properties new file mode 100644 index 0000000..2051d46 --- /dev/null +++ b/target/classes/querier.properties @@ -0,0 +1,123 @@ +############################################################################### +# 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. +############################################################################### + +## +## Required Properties +## + +#action -- required - 'encrypt' or 'decrypt' -- The action performed by the QuerierDriver +querier.action= + +#inputFile - required - Fully qualified file containing input +#The input is either: +#(1) For Encryption: A query file - Contains the query selectors, one per line; +#the first line must be the query number +#OR +#(2) For Decryption: A response file - Contains the serialized Response object +querier.inputFile= + +#outputFile -- required - Fully qualified file for the result output. +#The output file specifies either: +#(1) For encryption: +#(a) A file to contain the serialized Querier object named: <outputFile>-querier +#AND +#(b) A file to contain the serialized Query object named: <outputFile>-query +#OR +#(2) A file to contain the decryption results where each line is where each line +#corresponds to one hit and is a JSON object with the schema QuerySchema +querier.outputFile= + +#numThreads -- required -- Number of threads to use for encryption/decryption +querier.numThreads= + +## +## Optional Args +## + +#dataSchemas -- optional -- Comma separated list of data schema file names to load +#querier.dataSchemas= + +#querySchemas -- optional -- Comma separated list of query schema file names to load +#querier.dataSchemas= + + +## Optional, but required for Encryption (ignored if not encrypting) + +#bitset -- required for encryption -- Ensure that this bit position is set in the Paillier +#modulus (will generate Paillier moduli until finding one in which this bit is set) +#querier.bitSet= + +#certainty -- required for encryption -- Certainty of prime generation for Paillier +#must be greater than or equal to 128 +#querier.certainty= + +#dataPartitionBitSize -- required for encryption -- Partition bit size in data partitioning +#querier.dataPartitionBitSize= + +#embedSelector - required for encryption -- 'true' or 'false' +#Whether or not to embed the selector in the results to reduce false positives +#Defaults to 'true' +#querier.embedSelector= + +#embedQuerySchema - true or false +#Whether or not to embed the QuerySchema in the Query (via QueryInfo) +#Defaults to 'false' +#querier.embedQuerySchema= + +#hashBitSize - required for encryption-- Bit size of keyed hash +#querier.hashBitSize= + +#hashKey -- required for encryption -- String key for the keyed hash functionality +#querier.hashKey= + +#useHDFSLookupTable -- required for encryption -- 'true' or 'false' +#Whether or not to generate and use a hdfs modular exponentation lookup table +#Defaults to 'false' +#querier.useHDFSLookupTable= + +#memLookupTable -- required for encryption -- 'true' or 'false' +#Whether or not to generate and use an in memory modular exponentation lookup table - only for +#standalone/testing right now... +#Defaults to 'false' +#querier.memLookupTable= + +#paillierBitSize -- required for encryption -- Paillier modulus size N +#querier.paillierBitSize= + +#queryName -- required for encryption -- Name of the query +#querier.queryName= + +#queryType -- required for encryption +#Type of the query as defined in the 'schemaName' tag of the corresponding query schema file +#querier.queryType= + +#secureRandomAlg -- specify the SecureRandom algorithm +#Defaults to NativePRNG +#querier.secureRandomAlg= + +#secureRandomProvider -- specify the SecureRandom provider +#Defaults to SUN +#querier.secureRandomProvider= + +## Optional, but required for Decryption (ignored if not decrypting) + +#querierFile -- required for decryption +#Fully qualified file containing the serialized Querier object +#querier.querierFile= + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/query-schema.xsd ---------------------------------------------------------------------- diff --git a/target/classes/query-schema.xsd b/target/classes/query-schema.xsd new file mode 100644 index 0000000..65a36ce --- /dev/null +++ b/target/classes/query-schema.xsd @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + ~ 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. + --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://pirk.apache.org" xmlns="http://pirk.apache.org" + elementFormDefault="qualified"> + + <xs:element name="schema"> + <xs:complexType> + <xs:sequence> + <xs:element name="schemaName" type="xs:string"> + <xs:annotation> + <xs:documentation> + The name of the query schema. + The name omits leading and trailing + whitespace, and is case sensitive. + </xs:documentation> + </xs:annotation> + </xs:element> + + <xs:element name="dataSchemaName" type="xs:string"> + <xs:annotation> + <xs:documentation> + The name of the data schema + over which this query is run. The name omits + leading and trailing whitespace, and is case + sensitive. + </xs:documentation> + </xs:annotation> + </xs:element> + + <xs:element name="selectorName" type="xs:string"> + <xs:annotation> + <xs:documentation>The name of the name of the + element in the data schema that will be the + selector for this query. + </xs:documentation> + </xs:annotation> + </xs:element> + + <xs:element name="elements"> + <xs:annotation> + <xs:documentation> + The set of element names to + include in the query response. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + + <xs:element name="name" type="xs:string" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation> + The name of an + element in the data schema to + include in the query response. + </xs:documentation> + </xs:annotation> + </xs:element> + + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="filter" type="xs:string" + minOccurs="0"> + <xs:annotation> + <xs:documentation> + The name of a class used to + filter the query response data. + </xs:documentation> + </xs:annotation> + </xs:element> + + <xs:element name="filterNames" minOccurs="0" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation> + The set of data element names + over which the + response filter is applied. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + + <xs:element name="name" type="xs:string"> + <xs:annotation> + <xs:documentation> + The name of an + element in the data schema over + which to apply the filter. + </xs:documentation> + </xs:annotation> + </xs:element> + + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + +</xs:schema> http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/classes/responder.properties ---------------------------------------------------------------------- diff --git a/target/classes/responder.properties b/target/classes/responder.properties new file mode 100644 index 0000000..11ad7f6 --- /dev/null +++ b/target/classes/responder.properties @@ -0,0 +1,137 @@ +############################################################################### +# 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. +############################################################################### + +## +## Required Properties +## + +#dataInputFormat -- required -- 'base', 'elasticsearch', or 'standalone' -- Specify the input format +pir.dataInputFormat= + +#outputFile -- required -- Fully qualified name of output file in hdfs +pir.outputFile= + +#platform -- required -- 'mapreduce', 'spark', or 'standalone' +#Processing platform technology for the responder +platform= + +#queryInput -- required -- Fully qualified dir in hdfs of Query files +pir.queryInput= + + +## +## Optional Args - Leave empty if not using/not changing default values +## + +#inputData -- required if baseInputFormat = 'base' +#Fully qualified name of input file/directory in hdfs; used if inputFormat = 'base' +#pir.inputData= + +#dataSchemas -- optional -- Comma separated list of data schema file names to load +#responder.dataSchemas= + +#querySchemas -- optional -- Comma separated list of query schema file names to load +#responder.querySchemas= + +#allowAdHocQuerySchemas -- 'true' or 'false' +#If true, allows embedded QuerySchemas for a query. +#Defaults to 'false' +#pir.allowEmbeddedQuerySchemas= + +#colMultReduceByKey -- 'true' or 'false' -- Spark only +#If true, uses reduceByKey in performing column multiplication; if false, uses groupByKey -> reduce +#Defaults to 'false' +#pir.colMultReduceByKey= + +#baseInputFormat -- required if baseInputFormat = 'base' +#Full class name of the InputFormat to use when reading in the data - must extend BaseInputFormat +#pir.baseInputFormat= + +#esQuery -- required if baseInputFormat = 'elasticsearch' -- ElasticSearch query +#if using 'elasticsearch' input format +#pir.esQuery= + +#esResource -- required if baseInputFormat = 'elasticsearch' +#Requires the format <index>/<type> : Elasticsearch resource where data is read and written to +#pir.esResource= + +#useHDFSLookupTable -- 'true' or 'false' - Whether or not to generate and use the +#hdfs lookup table for modular exponentiation +#Defaults to 'false' +#pir.useHDFSLookupTable= + +#baseQuery -- ElasticSearch-like query if using 'base' input format - +#used to filter records in the RecordReader +#Defaults to ?q=* +#pir.baseQuery= + +#limitHitsPerSelector -- 'true' or 'false' +#Whether or not to limit the number of hits per selector +#Defaults to 'true' +#pir.limitHitsPerSelector= + +#mapreduceMapJavaOpts -- Amount of heap (in MB) to allocate per map task +#Defaults to -Xmx2800m +#mapreduce.map.java.opts= + +#mapreduceMapMemoryMb -- Amount of memory (in MB) to allocate per map task +#Defaults to 3000 +#mapreduce.map.memory.mb= + +#mapreduceReduceJavaOpts +#Amount of heap (in MB) to allocate per reduce task +#Defaults to -Xmx2800m +#mapreduce.reduce.java.opts= + +#mapreduceReduceMemoryMb +#Amount of memory (in MB) to allocate per reduce task +#Defaults to 3000 +#mapreduce.reduce.memory.mb= + +#stopListFile -- optional (unless using StopListFilter) -- Fully qualified file in hdfs +#containing stoplist terms; used by the StopListFilter +#pir.stopListFile= + +#useLocalCache -- 'true' or 'false' +#Whether or not to use the local cache for modular exponentiation +#Defaults to 'true' +#pir.useLocalCache= + +#useModExpJoin -- 'true' or 'false' -- Spark only +#Whether or not to pre-compute the modular exponentiation table and join it to the data +#partitions when performing the encrypted row calculations +#Defaults to 'false' +#pir.useModExpJoin= + +#numReduceTasks -- optional -- Number of reduce tasks +#pir.numReduceTasks= + +#numColMultPartitions -- optional, Spark only +#Number of partitions to use when performing column multiplication +#pir.numColMultPartitions= + +#maxHitsPerSelector -- optional -- Max number of hits encrypted per selector +#pir.maxHitsPerSelector= + +#dataParts -- optional -- Number of partitions for the input data +#pir.numDataPartitions= + +#numExpLookupPartitions -- optional -- Number of partitions for the exp lookup table +#pir.numExpLookupPartitions= + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType.java new file mode 100644 index 0000000..249d6dd --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType.java @@ -0,0 +1,4 @@ +package org.apache.pirk.benchmark.generated; +public class PaillierBenchmark_PaillierBenchmarkState_jmhType extends PaillierBenchmark_PaillierBenchmarkState_jmhType_B3 { +} + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B1.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B1.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B1.java new file mode 100644 index 0000000..878c930 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B1.java @@ -0,0 +1,20 @@ +package org.apache.pirk.benchmark.generated; +import org.apache.pirk.benchmark.PaillierBenchmark.PaillierBenchmarkState; +public class PaillierBenchmark_PaillierBenchmarkState_jmhType_B1 extends org.apache.pirk.benchmark.PaillierBenchmark.PaillierBenchmarkState { + boolean p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015; + boolean p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031; + boolean p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047; + boolean p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063; + boolean p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079; + boolean p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095; + boolean p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111; + boolean p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127; + boolean p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143; + boolean p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159; + boolean p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175; + boolean p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191; + boolean p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207; + boolean p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223; + boolean p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239; + boolean p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255; +} http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.java new file mode 100644 index 0000000..38cef53 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.java @@ -0,0 +1,22 @@ +package org.apache.pirk.benchmark.generated; +import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; +public class PaillierBenchmark_PaillierBenchmarkState_jmhType_B2 extends PaillierBenchmark_PaillierBenchmarkState_jmhType_B1 { + public volatile int setupTrialMutex; + public volatile int tearTrialMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "setupTrialMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "tearTrialMutex"); + + public volatile int setupIterationMutex; + public volatile int tearIterationMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "setupIterationMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "tearIterationMutex"); + + public volatile int setupInvocationMutex; + public volatile int tearInvocationMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "setupInvocationMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_PaillierBenchmarkState_jmhType_B2> tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_PaillierBenchmarkState_jmhType_B2.class, "tearInvocationMutex"); + + public volatile boolean readyTrial; + public volatile boolean readyIteration; + public volatile boolean readyInvocation; +} http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B3.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B3.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B3.java new file mode 100644 index 0000000..96099a8 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_PaillierBenchmarkState_jmhType_B3.java @@ -0,0 +1,20 @@ +package org.apache.pirk.benchmark.generated; +public class PaillierBenchmark_PaillierBenchmarkState_jmhType_B3 extends PaillierBenchmark_PaillierBenchmarkState_jmhType_B2 { + boolean p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015; + boolean p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031; + boolean p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047; + boolean p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063; + boolean p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079; + boolean p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095; + boolean p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111; + boolean p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127; + boolean p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143; + boolean p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159; + boolean p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175; + boolean p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191; + boolean p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207; + boolean p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223; + boolean p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239; + boolean p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255; +} + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType.java new file mode 100644 index 0000000..c9fb26c --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType.java @@ -0,0 +1,4 @@ +package org.apache.pirk.benchmark.generated; +public class PaillierBenchmark_jmhType extends PaillierBenchmark_jmhType_B3 { +} + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B1.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B1.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B1.java new file mode 100644 index 0000000..24b5cae --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B1.java @@ -0,0 +1,20 @@ +package org.apache.pirk.benchmark.generated; +import org.apache.pirk.benchmark.PaillierBenchmark; +public class PaillierBenchmark_jmhType_B1 extends org.apache.pirk.benchmark.PaillierBenchmark { + boolean p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015; + boolean p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031; + boolean p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047; + boolean p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063; + boolean p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079; + boolean p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095; + boolean p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111; + boolean p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127; + boolean p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143; + boolean p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159; + boolean p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175; + boolean p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191; + boolean p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207; + boolean p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223; + boolean p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239; + boolean p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255; +} http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B2.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B2.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B2.java new file mode 100644 index 0000000..ea65ff1 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B2.java @@ -0,0 +1,19 @@ +package org.apache.pirk.benchmark.generated; +import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; +public class PaillierBenchmark_jmhType_B2 extends PaillierBenchmark_jmhType_B1 { + public volatile int setupTrialMutex; + public volatile int tearTrialMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "setupTrialMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "tearTrialMutex"); + + public volatile int setupIterationMutex; + public volatile int tearIterationMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "setupIterationMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "tearIterationMutex"); + + public volatile int setupInvocationMutex; + public volatile int tearInvocationMutex; + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "setupInvocationMutex"); + public final static AtomicIntegerFieldUpdater<PaillierBenchmark_jmhType_B2> tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(PaillierBenchmark_jmhType_B2.class, "tearInvocationMutex"); + +} http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B3.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B3.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B3.java new file mode 100644 index 0000000..7d2b623 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_jmhType_B3.java @@ -0,0 +1,20 @@ +package org.apache.pirk.benchmark.generated; +public class PaillierBenchmark_jmhType_B3 extends PaillierBenchmark_jmhType_B2 { + boolean p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015; + boolean p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031; + boolean p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047; + boolean p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063; + boolean p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079; + boolean p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095; + boolean p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111; + boolean p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127; + boolean p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143; + boolean p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159; + boolean p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175; + boolean p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191; + boolean p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207; + boolean p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223; + boolean p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239; + boolean p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255; +} + http://git-wip-us.apache.org/repos/asf/incubator-pirk/blob/9af0dad4/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_testWithGMPConstantTime_jmhTest.java ---------------------------------------------------------------------- diff --git a/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_testWithGMPConstantTime_jmhTest.java b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_testWithGMPConstantTime_jmhTest.java new file mode 100644 index 0000000..ef351d6 --- /dev/null +++ b/target/generated-sources/annotations/org/apache/pirk/benchmark/generated/PaillierBenchmark_testWithGMPConstantTime_jmhTest.java @@ -0,0 +1,414 @@ +package org.apache.pirk.benchmark.generated; + +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.Collection; +import java.util.ArrayList; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; +import org.openjdk.jmh.annotations.CompilerControl; +import org.openjdk.jmh.runner.InfraControl; +import org.openjdk.jmh.infra.ThreadParams; +import org.openjdk.jmh.results.BenchmarkTaskResult; +import org.openjdk.jmh.results.Result; +import org.openjdk.jmh.results.ThroughputResult; +import org.openjdk.jmh.results.AverageTimeResult; +import org.openjdk.jmh.results.SampleTimeResult; +import org.openjdk.jmh.results.SingleShotResult; +import org.openjdk.jmh.util.SampleBuffer; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Threads; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.results.RawResults; +import org.openjdk.jmh.results.ResultRole; +import java.lang.reflect.Field; +import org.openjdk.jmh.infra.BenchmarkParams; +import org.openjdk.jmh.infra.IterationParams; + +import org.openjdk.jmh.infra.generated.Blackhole_jmhType; +import org.apache.pirk.benchmark.generated.PaillierBenchmark_jmhType; +import org.apache.pirk.benchmark.generated.PaillierBenchmark_PaillierBenchmarkState_jmhType; +@Generated("org.openjdk.jmh.generators.core.BenchmarkGenerator") +public final class PaillierBenchmark_testWithGMPConstantTime_jmhTest { + + boolean p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015; + boolean p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031; + boolean p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047; + boolean p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063; + boolean p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079; + boolean p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095; + boolean p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111; + boolean p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127; + boolean p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143; + boolean p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159; + boolean p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175; + boolean p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191; + boolean p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207; + boolean p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223; + boolean p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239; + boolean p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255; + int startRndMask; + + public BenchmarkTaskResult testWithGMPConstantTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable { + if (threadParams.getSubgroupIndex() == 0) { + RawResults res = new RawResults(); + Blackhole_jmhType l_blackhole1_1 = _jmh_tryInit_f_blackhole1_1(control, threadParams); + PaillierBenchmark_jmhType l_paillierbenchmark0_0 = _jmh_tryInit_f_paillierbenchmark0_0(control, threadParams); + PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G = _jmh_tryInit_f_paillierbenchmarkstate2_G(control, threadParams); + + control.preSetup(); + l_blackhole1_1.clearSinks(); + + control.announceWarmupReady(); + while (control.warmupShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + + testWithGMPConstantTime_thrpt_jmhStub(control, res, l_paillierbenchmarkstate2_G, l_paillierbenchmark0_0, l_blackhole1_1); + control.announceWarmdownReady(); + try { + while (control.warmdownShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + control.preTearDown(); + } catch (InterruptedException ie) { + control.preTearDownForce(); + } + + if (control.isLastIteration()) { + if (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.compareAndSet(l_paillierbenchmarkstate2_G, 0, 1)) { + try { + if (l_paillierbenchmarkstate2_G.readyTrial) { + l_paillierbenchmarkstate2_G.readyTrial = false; + } + } finally { + PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.set(l_paillierbenchmarkstate2_G, 0); + } + } else { + long l_paillierbenchmarkstate2_G_backoff = 1; + while (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.get(l_paillierbenchmarkstate2_G) == 1) { + TimeUnit.MILLISECONDS.sleep(l_paillierbenchmarkstate2_G_backoff); + l_paillierbenchmarkstate2_G_backoff = Math.max(1024, l_paillierbenchmarkstate2_G_backoff * 2); + if (Thread.interrupted()) throw new InterruptedException(); + } + } + synchronized(this.getClass()) { + f_paillierbenchmarkstate2_G = null; + } + f_paillierbenchmark0_0 = null; + f_blackhole1_1 = null; + } + res.allOps += res.measuredOps; + int batchSize = control.iterationParams.getBatchSize(); + int opsPerInv = control.benchmarkParams.getOpsPerInvocation(); + res.allOps *= opsPerInv; + res.allOps /= batchSize; + res.measuredOps *= opsPerInv; + res.measuredOps /= batchSize; + BenchmarkTaskResult results = new BenchmarkTaskResult(res.allOps, res.measuredOps); + results.add(new ThroughputResult(ResultRole.PRIMARY, "testWithGMPConstantTime", res.measuredOps, res.getTime(), control.benchmarkParams.getTimeUnit())); + return results; + } else + throw new IllegalStateException("Harness failed to distribute threads among groups properly"); + } + + public void testWithGMPConstantTime_thrpt_jmhStub(InfraControl control, RawResults result, PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G, PaillierBenchmark_jmhType l_paillierbenchmark0_0, Blackhole_jmhType l_blackhole1_1) throws Throwable { + long operations = 0; + long realTime = 0; + result.startTime = System.nanoTime(); + do { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + operations++; + } while(!control.isDone); + result.stopTime = System.nanoTime(); + result.realTime = realTime; + result.measuredOps = operations; + } + + + public BenchmarkTaskResult testWithGMPConstantTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable { + if (threadParams.getSubgroupIndex() == 0) { + RawResults res = new RawResults(); + Blackhole_jmhType l_blackhole1_1 = _jmh_tryInit_f_blackhole1_1(control, threadParams); + PaillierBenchmark_jmhType l_paillierbenchmark0_0 = _jmh_tryInit_f_paillierbenchmark0_0(control, threadParams); + PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G = _jmh_tryInit_f_paillierbenchmarkstate2_G(control, threadParams); + + control.preSetup(); + l_blackhole1_1.clearSinks(); + + control.announceWarmupReady(); + while (control.warmupShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + + testWithGMPConstantTime_avgt_jmhStub(control, res, l_paillierbenchmarkstate2_G, l_paillierbenchmark0_0, l_blackhole1_1); + control.announceWarmdownReady(); + try { + while (control.warmdownShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + control.preTearDown(); + } catch (InterruptedException ie) { + control.preTearDownForce(); + } + + if (control.isLastIteration()) { + if (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.compareAndSet(l_paillierbenchmarkstate2_G, 0, 1)) { + try { + if (l_paillierbenchmarkstate2_G.readyTrial) { + l_paillierbenchmarkstate2_G.readyTrial = false; + } + } finally { + PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.set(l_paillierbenchmarkstate2_G, 0); + } + } else { + long l_paillierbenchmarkstate2_G_backoff = 1; + while (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.get(l_paillierbenchmarkstate2_G) == 1) { + TimeUnit.MILLISECONDS.sleep(l_paillierbenchmarkstate2_G_backoff); + l_paillierbenchmarkstate2_G_backoff = Math.max(1024, l_paillierbenchmarkstate2_G_backoff * 2); + if (Thread.interrupted()) throw new InterruptedException(); + } + } + synchronized(this.getClass()) { + f_paillierbenchmarkstate2_G = null; + } + f_paillierbenchmark0_0 = null; + f_blackhole1_1 = null; + } + res.allOps += res.measuredOps; + int batchSize = control.iterationParams.getBatchSize(); + int opsPerInv = control.benchmarkParams.getOpsPerInvocation(); + res.allOps *= opsPerInv; + res.allOps /= batchSize; + res.measuredOps *= opsPerInv; + res.measuredOps /= batchSize; + BenchmarkTaskResult results = new BenchmarkTaskResult(res.allOps, res.measuredOps); + results.add(new AverageTimeResult(ResultRole.PRIMARY, "testWithGMPConstantTime", res.measuredOps, res.getTime(), control.benchmarkParams.getTimeUnit())); + return results; + } else + throw new IllegalStateException("Harness failed to distribute threads among groups properly"); + } + + public void testWithGMPConstantTime_avgt_jmhStub(InfraControl control, RawResults result, PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G, PaillierBenchmark_jmhType l_paillierbenchmark0_0, Blackhole_jmhType l_blackhole1_1) throws Throwable { + long operations = 0; + long realTime = 0; + result.startTime = System.nanoTime(); + do { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + operations++; + } while(!control.isDone); + result.stopTime = System.nanoTime(); + result.realTime = realTime; + result.measuredOps = operations; + } + + + public BenchmarkTaskResult testWithGMPConstantTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable { + if (threadParams.getSubgroupIndex() == 0) { + RawResults res = new RawResults(); + Blackhole_jmhType l_blackhole1_1 = _jmh_tryInit_f_blackhole1_1(control, threadParams); + PaillierBenchmark_jmhType l_paillierbenchmark0_0 = _jmh_tryInit_f_paillierbenchmark0_0(control, threadParams); + PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G = _jmh_tryInit_f_paillierbenchmarkstate2_G(control, threadParams); + + control.preSetup(); + l_blackhole1_1.clearSinks(); + + control.announceWarmupReady(); + while (control.warmupShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + + int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond + int batchSize = control.iterationParams.getBatchSize(); + int opsPerInv = control.benchmarkParams.getOpsPerInvocation(); + SampleBuffer buffer = new SampleBuffer(); + testWithGMPConstantTime_sample_jmhStub(control, res, buffer, targetSamples, opsPerInv, batchSize, l_paillierbenchmarkstate2_G, l_paillierbenchmark0_0, l_blackhole1_1); + control.announceWarmdownReady(); + try { + while (control.warmdownShouldWait) { + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + res.allOps++; + } + control.preTearDown(); + } catch (InterruptedException ie) { + control.preTearDownForce(); + } + + if (control.isLastIteration()) { + if (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.compareAndSet(l_paillierbenchmarkstate2_G, 0, 1)) { + try { + if (l_paillierbenchmarkstate2_G.readyTrial) { + l_paillierbenchmarkstate2_G.readyTrial = false; + } + } finally { + PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.set(l_paillierbenchmarkstate2_G, 0); + } + } else { + long l_paillierbenchmarkstate2_G_backoff = 1; + while (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.get(l_paillierbenchmarkstate2_G) == 1) { + TimeUnit.MILLISECONDS.sleep(l_paillierbenchmarkstate2_G_backoff); + l_paillierbenchmarkstate2_G_backoff = Math.max(1024, l_paillierbenchmarkstate2_G_backoff * 2); + if (Thread.interrupted()) throw new InterruptedException(); + } + } + synchronized(this.getClass()) { + f_paillierbenchmarkstate2_G = null; + } + f_paillierbenchmark0_0 = null; + f_blackhole1_1 = null; + } + res.allOps += res.measuredOps * batchSize; + res.allOps *= opsPerInv; + res.allOps /= batchSize; + res.measuredOps *= opsPerInv; + BenchmarkTaskResult results = new BenchmarkTaskResult(res.allOps, res.measuredOps); + results.add(new SampleTimeResult(ResultRole.PRIMARY, "testWithGMPConstantTime", buffer, control.benchmarkParams.getTimeUnit())); + return results; + } else + throw new IllegalStateException("Harness failed to distribute threads among groups properly"); + } + + public void testWithGMPConstantTime_sample_jmhStub(InfraControl control, RawResults result, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G, PaillierBenchmark_jmhType l_paillierbenchmark0_0, Blackhole_jmhType l_blackhole1_1) throws Throwable { + long realTime = 0; + long operations = 0; + int rnd = (int)System.nanoTime(); + int rndMask = startRndMask; + long time = 0; + int currentStride = 0; + do { + rnd = (rnd * 1664525 + 1013904223); + boolean sample = (rnd & rndMask) == 0; + if (sample) { + time = System.nanoTime(); + } + for (int b = 0; b < batchSize; b++) { + if (control.volatileSpoiler) return; + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + } + if (sample) { + buffer.add((System.nanoTime() - time) / opsPerInv); + if (currentStride++ > targetSamples) { + buffer.half(); + currentStride = 0; + rndMask = (rndMask << 1) + 1; + } + } + operations++; + } while(!control.isDone); + startRndMask = Math.max(startRndMask, rndMask); + result.realTime = realTime; + result.measuredOps = operations; + } + + + public BenchmarkTaskResult testWithGMPConstantTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable { + if (threadParams.getSubgroupIndex() == 0) { + Blackhole_jmhType l_blackhole1_1 = _jmh_tryInit_f_blackhole1_1(control, threadParams); + PaillierBenchmark_jmhType l_paillierbenchmark0_0 = _jmh_tryInit_f_paillierbenchmark0_0(control, threadParams); + PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G = _jmh_tryInit_f_paillierbenchmarkstate2_G(control, threadParams); + + control.preSetup(); + l_blackhole1_1.clearSinks(); + + RawResults res = new RawResults(); + int batchSize = control.iterationParams.getBatchSize(); + testWithGMPConstantTime_ss_jmhStub(control, batchSize, res, l_paillierbenchmarkstate2_G, l_paillierbenchmark0_0, l_blackhole1_1); + control.preTearDown(); + + if (control.isLastIteration()) { + if (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.compareAndSet(l_paillierbenchmarkstate2_G, 0, 1)) { + try { + if (l_paillierbenchmarkstate2_G.readyTrial) { + l_paillierbenchmarkstate2_G.readyTrial = false; + } + } finally { + PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.set(l_paillierbenchmarkstate2_G, 0); + } + } else { + long l_paillierbenchmarkstate2_G_backoff = 1; + while (PaillierBenchmark_PaillierBenchmarkState_jmhType.tearTrialMutexUpdater.get(l_paillierbenchmarkstate2_G) == 1) { + TimeUnit.MILLISECONDS.sleep(l_paillierbenchmarkstate2_G_backoff); + l_paillierbenchmarkstate2_G_backoff = Math.max(1024, l_paillierbenchmarkstate2_G_backoff * 2); + if (Thread.interrupted()) throw new InterruptedException(); + } + } + synchronized(this.getClass()) { + f_paillierbenchmarkstate2_G = null; + } + f_paillierbenchmark0_0 = null; + f_blackhole1_1 = null; + } + int opsPerInv = control.benchmarkParams.getOpsPerInvocation(); + long totalOps = opsPerInv; + BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps); + results.add(new SingleShotResult(ResultRole.PRIMARY, "testWithGMPConstantTime", res.getTime(), control.benchmarkParams.getTimeUnit())); + return results; + } else + throw new IllegalStateException("Harness failed to distribute threads among groups properly"); + } + + public void testWithGMPConstantTime_ss_jmhStub(InfraControl control, int batchSize, RawResults result, PaillierBenchmark_PaillierBenchmarkState_jmhType l_paillierbenchmarkstate2_G, PaillierBenchmark_jmhType l_paillierbenchmark0_0, Blackhole_jmhType l_blackhole1_1) throws Throwable { + long realTime = 0; + result.startTime = System.nanoTime(); + for (int b = 0; b < batchSize; b++) { + if (control.volatileSpoiler) return; + l_paillierbenchmark0_0.testWithGMPConstantTime(l_paillierbenchmarkstate2_G); + } + result.stopTime = System.nanoTime(); + result.realTime = realTime; + } + + + static volatile PaillierBenchmark_PaillierBenchmarkState_jmhType f_paillierbenchmarkstate2_G; + + PaillierBenchmark_PaillierBenchmarkState_jmhType _jmh_tryInit_f_paillierbenchmarkstate2_G(InfraControl control, ThreadParams threadParams) throws Throwable { + PaillierBenchmark_PaillierBenchmarkState_jmhType val = f_paillierbenchmarkstate2_G; + if (val != null) { + return val; + } + synchronized(this.getClass()) { + val = f_paillierbenchmarkstate2_G; + if (val != null) { + return val; + } + val = new PaillierBenchmark_PaillierBenchmarkState_jmhType(); + val.setUp(); + val.readyTrial = true; + f_paillierbenchmarkstate2_G = val; + } + return val; + } + + Blackhole_jmhType f_blackhole1_1; + + Blackhole_jmhType _jmh_tryInit_f_blackhole1_1(InfraControl control, ThreadParams threadParams) throws Throwable { + Blackhole_jmhType val = f_blackhole1_1; + if (val == null) { + val = new Blackhole_jmhType(); + f_blackhole1_1 = val; + } + return val; + } + + PaillierBenchmark_jmhType f_paillierbenchmark0_0; + + PaillierBenchmark_jmhType _jmh_tryInit_f_paillierbenchmark0_0(InfraControl control, ThreadParams threadParams) throws Throwable { + PaillierBenchmark_jmhType val = f_paillierbenchmark0_0; + if (val == null) { + val = new PaillierBenchmark_jmhType(); + f_paillierbenchmark0_0 = val; + } + return val; + } + + +} +
