From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112493 invoked by alias); 1 Dec 2017 17:35:34 -0000 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org Received: (qmail 112475 invoked by uid 89); 1 Dec 2017 17:35:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=BAYES_00,KB_WAM_FROM_NAME_SINGLEWORD,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 spammy=H*p:D*edu, sums, million, HTo:U*gsl-discuss X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Received: from mail-dm3nam03on0103.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) (104.47.41.103) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Dec 2017 17:35:31 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=patrick.alken@colorado.edu; Received: from [192.168.0.8] (174.29.42.54) by CY1PR03MB1407.namprd03.prod.outlook.com (10.163.17.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.5; Fri, 1 Dec 2017 17:35:29 +0000 Subject: Re: random number generation algorithms To: gsl-discuss@sourceware.org References: From: Patrick Alken Message-ID: <616a2f9f-b333-6640-914e-9fa6e4f07497@colorado.edu> Date: Fri, 01 Dec 2017 17:35:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CY4PR20CA0046.namprd20.prod.outlook.com (10.172.113.160) To CY1PR03MB1407.namprd03.prod.outlook.com (10.163.17.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f740ba19-bd7f-4838-0340-08d538e1ea6f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603286);SRVR:CY1PR03MB1407; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1407;3:3qllmm+3pvHn3L/a4FFEjt1NlZQvAB7pKT7RZHgjYDNI7EmijeRwQ51c7JdHVqNh8qmmnUyEhMqceLAt1xFi0rMKkLqm1Z48wum+7w1/9TppayVar/PQ0Nd6JrQrfDXsm4skz5sPW1fWN1ZmAiOaosbYdingJ+DsUv3LDNuIliPhzdsaKZxWRWYrh4C+3TCcMhr3GkLUIcVmBs8ZrRRv9S9zkKHFE+o7KK5W15ZJf3eyKUdWpYHuHsEF7A02uXYo;25:B6NGASeKVniRiZvJrSDhmIZUchED7fZTV/eKzJnGFrUx1+/TTXGgTmKieYryTUGJXsUXpj/NK1XcxmaoJWnDXQleurbqnf/zx58i3iawYVETQXx2zQJNI7oq6dERzsGRDDt6YGCWFQnvUYgDXxXJ5gkIfSs9SIAZyK0M4HkBrCMykwkzldfGJW4aCj1JV8Vp2TF3ZC7sp25v4ju4dU8HVm+0d2+LLzQ73OUIP4GUr4z4FdGgkU/l8cdPs3gxM2IIjdS2kfafQl2MnM02IvGLYTVdJCutB5I8TgEgKxTvuHR76RQ7R2wYRAsbAiOJkOfKzwjxU42j7We3qnqrOujtAg==;31:m0P+KzO9YXNAudi/YLv5k3q9f+cAjXfTa995CIEQ/ULESIjn+WhBEvbQFTkztDB7ncTbed4QycWzBEeepiMsu3M4X+CbmY/iIjsbcUBQO9YNcHG9P7FFoSX6s3d3kXc5qmh4rylxaOrW9fVwyE29FV7/x25GJeLfnDyqeMCch9fknEI3xLQZiZ+KAYlLS9mfYt6sNNOFzIe+w3c7mRR3v8/3EeTCDiA8lJ0lQz8IvUA= X-MS-TrafficTypeDiagnostic: CY1PR03MB1407: X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1407;20:bStrIioEgsFBHCF9owCUPbol3Khl4eKu/BOysIOx0+jUal3pnydDsn+hGwT/9oVHbk3TzoE19tdeN/47Nc7tvyAkDJQh08JWgqlXWBpxDgThvL3PySKA419gaS5/4PCMmrFk0Hgs1HTFxAMo0L0wCdDzhoNipQBrh2AKOF7BLMdyCJpZdsmpsqwATQ+XJCIkdmRsgkx4MOcMgmvQnlQXSQ66KKoKi1SRwuFwN0aFGkrCAlvihg+ZqhXmkTn6o845DgF5XHMJUbosyrTqK+1BYmG7f4JeoGaRb4Zho2WN7DnXOmOik99Q+/kd3YKpopysnL0lbZWOghaD1woWjYWJiTjobRWXWNy2pR4yAnHgE39osEv8LaNVMUwre+OYcTg93TwE1JRMjhW6wyeMVGheQF2LrlCHOY+KMSmXA4XXAV7s5b99O8pUEgZ/iDfOHAd/gV1XfoBGLqfLBqxDH0tp+Gzi9Y0cTj9x7LxE3abLvXrGAaSUlQ5SoOWNFI0ZFEov;4:7XNg1XsMFpdamJEHFM2/Gkn1tgIzIsxlDCGqb8inhtQ1VZF/qVrrSu1ilTgYi37KOLnkjEaN9l0R2TYHxs2kO8J+VN0/PeIp4kayuNWGC9k8kn7nKRaZfOy4gLk9+EJ1yvbLMDWGv6uhsJbV1LYXx8S+1Xkeo13aRhvStajJPdLnZybX/ILoOyaG1TdBSWEcz4W0zwabC7V7SYIE2+C1uh234rWcatJXRKc5QEbgAtcdblaYmeBAuOz7GIU+OpRwPe6GQ5b3KFjGmZ5YrD/asw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231022)(3002001)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(6072148)(201708071742011);SRVR:CY1PR03MB1407;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:CY1PR03MB1407; X-Forefront-PRVS: 05087F0C24 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6049001)(366004)(346002)(376002)(24454002)(199003)(189002)(16526018)(36756003)(25786009)(31696002)(117156002)(65956001)(65806001)(68736007)(66066001)(81156014)(64126003)(8676002)(3480700004)(81166006)(8936002)(75432002)(101416001)(50466002)(53546010)(53936002)(6246003)(33646002)(105586002)(316002)(305945005)(7736002)(786003)(2361001)(16576012)(58126008)(106356001)(2351001)(5660300001)(52146003)(83506002)(65826007)(2950100002)(2906002)(478600001)(6666003)(6916009)(6486002)(77096006)(229853002)(90366009)(88552002)(2870700001)(97736004)(31686004)(6116002)(52116002)(3846002)(54356011)(189998001)(23676004)(76176011)(2486003)(47776003);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR03MB1407;H:[192.168.0.8];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: colorado.edu does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzTUIxNDA3OzIzOkRGTW9VUkJWOXk0dDJmRFBocmU0RzJ4aEd3?= =?utf-8?B?VjhhaEhubFJ3Q3M3cXc2aWdGWnlrYXZWRmFiWlgxYjJPOWxQYmJtVEVRNS8x?= =?utf-8?B?TEV5VEJQVW5mY2U3R0pLR2ZBS0NBQnVHTDZiYzRMT3oza09KQTdEN0ZETm9x?= =?utf-8?B?SVlqeURwWThEWGgraEt6MmVoM0tnZXBmeXNjazJqZEs5ZUhLc0lHbzZiRVdk?= =?utf-8?B?cmZCSlNDQ2hNVmVVdDByU0Z2TmFTazZCTlNkNjVlSWtQV0dBZnQ5WG8weXNa?= =?utf-8?B?cm42dU9rNWREdmNQaEFlaWUwM3RPbTc1b1F3Y1JsSDI0WDBKRU15TDRRUTZu?= =?utf-8?B?dWNvbzhhNnZjdlFWUmRPMnA5c005RjRkM2xUVE1MT0NUb0o2dW5GRkhlMkpS?= =?utf-8?B?SzZUVXFoWHBRdFUxQnFYcVVUL2NVOUk3SGhRbmFlU1hJcUwxcDhBVU5vRGRR?= =?utf-8?B?bFJqbkdQSG5ON3lUSmVwNURuUnovMkdlV2xFR0NIM21Na3FLVkt4R0JXNUUv?= =?utf-8?B?a0daK2Mzb0RwdXV0OXRSdW9xZU0xbEE2d0k1cThnU0RqSEdCd21MZldFMVJV?= =?utf-8?B?SldZZ0pVSUtiNEZtV2poV0w0TWVpS3JDVVBLM3RVRzNRYk1NZHd6TDhVdXI5?= =?utf-8?B?aUdHV1M2a0p1UTRXQVdUdHVCbURndnpNQWRYaFRaTkJoUy9oSjlYL00yRXNX?= =?utf-8?B?aTh5OHRQVWpUU0ZXb054L2RmdFVWTUNmY1VQK2J4RWlkWkdWc2NaRi9sdG00?= =?utf-8?B?QnZ2bHl5Rmc5SWJ0UVRlMFlrbDg1ZkkrdUNMb0Iyek5DYXlWamVWdUg1VHFF?= =?utf-8?B?ZUg1QnRZNjB5aURSL3Y2VHNkZFRscTQ2VkZEK0hmK00vQ0xWaFk4cmQwQnBC?= =?utf-8?B?d00xcjZQRWk0ZXQ4TFVIUEdvZ3QyaXhDVjdyTEhOQms0S3FqNnE4VEwrZHBK?= =?utf-8?B?Zkdlc1VYWnk2cml5Y0FVc3F6cXJrMUI3TXU0Y3FQcEI5ZitQc1owd0JnUTcr?= =?utf-8?B?OHliaGlIeDlxdytJdXNQNDMzQzlkWnk5VVdFbHBIN21rWjFKamNnb2tLMVNr?= =?utf-8?B?ZkVuZ2JsUmlYL1NsNkx2R0did0UxOW5UMkk5b3NHTFBHRVkzYjUyZ2Ryc0ht?= =?utf-8?B?RGxxTVVrZ1ZCMXRSR2F1RERSVlVIWVRKVFltb2tUNlFGUG5hSkI0WlZQc3dQ?= =?utf-8?B?RE9tbHBpZXNmOG9qMFRTQkJnZU5iZU10bHFMK3VkVW1iT1pNZkRtZDNYZ2Mx?= =?utf-8?B?SkhQanp1Y21Ec1owdFBCcnRzRUVwVWRsdUZjTjgwd0huRmlHdUgxdWRsZC9r?= =?utf-8?B?VHJHUVdnYVFiNjd4TFh3YkMvdDNhakgxQkUvRDFndmFRbHhubnQ5b002Ym9X?= =?utf-8?B?a0x0c1p5ZEFjbFVoNWVSYklTclZ0WnlrSTBtdTRZOWNubU5FVzk5dHdDNklH?= =?utf-8?B?RnFRdjBYREFNTjFieFkwZE91elZSck1Day9PdklQbkJFbEVXQ1dHWTJSRFIz?= =?utf-8?B?ZGpKb1U2blBiTmxHZ2NPQ20wK3lHV2h4QWs2RE1TWXNkZ05tNFVzZXhDTFpz?= =?utf-8?B?R1JZUFB4WExTNjVmS20vZlVURHZQR2tNbmxCWElKa3RyZTZwSkpDVW4rVmFC?= =?utf-8?B?R0hEMWk0dS96ODNoOHo0a3lCSzFMQXNWV2EyazArSDNQZjIvRTA0aHlGdE1Q?= =?utf-8?B?OXpyMDBpYnVuUjFqd3BkSnV0RFFmRExwNVQwSmJZaFozTHR0Nmk4OHZtUWdZ?= =?utf-8?B?Y2pNUVBtaVNDR2pvYUNDbzZjS3ZLaGk5eG9yZE5vd1ZlWFk5eG1iY3FBZm5j?= =?utf-8?B?M2dCZkJRSHAzL1Bvbm5JMngwSm4yRjQ4M240Z0h5U1ZiRHRUd1I0U284bllq?= =?utf-8?B?TzZPUU11TmYrQi9SQnVRMGJ4bXpqb3FQYlJuVkhJNHphOW4yQWRDbm11YnRv?= =?utf-8?B?UEFxWmM2dFZPU1E4bmw0UzlrQjh1YStIeWQ2cU9tWkJhdWhNSkg5dVJ1MFp4?= =?utf-8?B?WDEyditHUGxNSExiK2E1RTdvZnlxQ1c0dkwzdz09?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1407;6:yQrsaq428Ve+1N2q/qkovilGTCQ5Q+LZ0GJbaSUE5uFyUup3zysKqs/LdyWFv4kZbdJbqtc7UE6VcAsPc+gbPX1hvLQim2eAqXwBxz2boQ/vXW/48kdNaVAx0nbdiZemSAWgB6VcRYfpvkVHkv2B+QZQ27U47lrjbVkAbSTvzS1fGv3kf3+xXbx+dWRMVk4FlEhZhHs+HFSQ7M3vOt65IRsxquPyXHZQSEw0Sg8gsPtmt1pdFScOFYhzRH6rwF8M82odQssp0CUxEqrMWgg2f8HPL/zfe46iYsHpSKmv6+dpVMA3in/4UXcy+RFsoHmZeTKbEcNUpwvcciMg7+NHKqtu46A62kbVcIz07WWp2WE=;5:ZY6m7N89T9KxpDwHfbaZ3Jy8y+okAZAJcy1WHu5HxQVWrxySJDLJ7xmNQ2LoPEU89NESiiwY55MsIobXRtBqD/VlNO6dhOxd3dZBD1a/laz7KlZNA20KcmDjvEIeomIa6ktek42b3ylM+CeDbvp8tbquWZA80HHvfAOb4mD4Ya0=;24:dqPui998/pMtpDllMC64cQirCkiLQY4zXeSDmOZYTg8D+TUBHjxpkXQbh/dMQjqwpgf0q4VvRvh14SnMxkLyaM3zs2Kf/ot0VzeELDvu+4w=;7:3Yqal+XAoF66+Eow6ACsmxEUp1mhOjuEt+RbmGEeCKdzd5qq/pxt+d6jOHgIIW/6PIKps8Dw6L5CKI2gUaVBQ5ic5VOIv+lrOn0+sSJZjPS+3+isVYhvXOba09CUcjTUZkvcmfRBVInIuW5qjHvdzp6gTrFgu5TU+tdo1lKL/RcQAW6q1clIy+XrRWlGtk0VaVae90JjU9D8HI4fQffjMKu0pOFVJnWoB4Gi2KphFO2EuDots66NSqmNHQeJ79hw SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: colorado.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2017 17:35:29.4421 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f740ba19-bd7f-4838-0340-08d538e1ea6f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3ded8b1b-070d-4629-82e4-c0b019f46057 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1407 X-SW-Source: 2017-q4/txt/msg00002.txt.bz2 Hello, sorry for the late reply. Can you make a patch against the latest git repository and send it to me? On 11/14/2017 01:39 AM, Heiko Bauke wrote: > Hi, > > quite some time ago (in 2003) I provided some fixes for some random > number generation algorithms to the GSL.  My implementation was mainly > focused on correctness and portability.  Thus it was implemented in > C89, which is portable but does not guarantee to have a 64 bit integer > type. > > The performance of some random number generation algorithms, however, > can benefit a lot from an implementation that uses 64 integers for > intermediate values.  This holds often not only for genuine 64 bit > architectures but also for 32 bit CPUs where the compiler emits more > complex code to emulate 64 bit arithmetics.  Thus I reimplemented > these generators in C99 and 64 bit arithmetics and wrote a simple > benchmark that generates a few million random floating point numbers, > sums them up, prints this sum and the elapsed time.  For some > generators the performance difference is substantial. > > How can I submit my revised code?  The code is backward compatible to > C89 via preprocessor switches. > > Here my results to give you an idea of the performance impact of the > new implementation:  (Note that a substantial amount of time is > actually spent in making just the function call to the generator's get > routine, performing the loop and so on.  An empty get function, yields > a running time of 0.6 sec. on my computer.) > > Current code: > > generator type: cmrg > time = 3.13553 sec. > sum = 67102809.40374 > > generator type: mrg > time = 1.85819 sec. > sum = 67103626.29699 > > generator type: minstd > time = 0.87232 sec. > sum = 67112858.69032 > > generator type: knuthran2 > time = 4.21356 sec. > sum = 67111295.37067 > > generator type: fishman18 > time = 2.28581 sec. > sum = 67112445.93199 > > generator type: fishman20 > time = 0.90139 sec. > sum = 67104902.87940 > > generator type: lecuyer21 > time = 1.05779 sec. > sum = 67107194.15891 > > generator type: fishman2x > time = 1.14781 sec. > sum = 67118684.47031 > > > > New code: > > generator type: cmrg > time = 1.03106 sec. > sum = 67102809.40374 > > generator type: mrg > time = 0.72681 sec. > sum = 67103626.29699 > > generator type: minstd > time = 0.66231 sec. > sum = 67112858.69032 > > generator type: knuthran2 > time = 0.70982 sec. > sum = 67111295.37067 > > generator type: fishman18 > time = 0.66595 sec. > sum = 67112445.93199 > > generator type: fishman20 > time = 0.66089 sec. > sum = 67104902.87940 > > generator type: lecuyer21 > time = 0.80597 sec. > sum = 67107194.15891 > > generator type: fishman2x > time = 0.90818 sec. > sum = 67118684.47031 > > >     Regards, > >     Heiko >