From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3512 invoked by alias); 9 Jul 2009 14:19:37 -0000 Received: (qmail 3486 invoked by uid 22791); 9 Jul 2009 14:19:34 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,J_CHICKENPOX_46,J_CHICKENPOX_71 X-Spam-Check-By: sourceware.org Received: from static-ip-85-25-59-147.inaddr.intergenia.de (HELO gentryx.de) (85.25.59.147) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 09 Jul 2009 14:19:25 +0000 Received: from gentryx by gentryx.de with local (Exim 4.69) (envelope-from ) id 1MOuT3-00027G-NN for gcc@gcc.gnu.org; Thu, 09 Jul 2009 14:19:21 +0000 Date: Thu, 09 Jul 2009 14:19:00 -0000 From: Andreas =?iso-8859-1?Q?Sch=E4fer?= To: gcc@gcc.gnu.org Subject: Strange Performance Hit on 2D-Loop Message-ID: <20090709141953.GA4672@rei> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="FkmkrVfFsRoUs1wW" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg00171.txt.bz2 --FkmkrVfFsRoUs1wW Content-Type: multipart/mixed; boundary="PEIAKu/WMn1b1Hv9" Content-Disposition: inline --PEIAKu/WMn1b1Hv9 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 2089 Hey guys, I noticed a strange performance hit in one of our stencil codes, causing it to run twice as long.=20 To nail down the error, I reduced our code to the two attached demo programs. Basically they take two matrices and average each matrix element with its four direct neighbors. Depending on how these matrices are allocated, the performance hit occurs -- or does not. Here is the diff of the two files: @@ -17,8 +17,7 @@ void test(double (*grid)[GRID_WIDTH]) { - double (*gridOld)[GRID_WIDTH] =3D - malloc(GRID_WIDTH * GRID_HEIGHT * sizeof(double)); + double (*gridOld)[GRID_WIDTH] =3D gridOldArray; double (*gridNew)[GRID_WIDTH] =3D gridNewArray; printAddress(&gridNew[0][0]); printAddress(&gridOld[0][0]); where gridOldArray is a statically allocated array. Depending on the machines processor the performance hit varies from negligible to dramatic: Processor GCC Version Time(slow) Time(fast) Performance Hit ------------------ ----------- ---------- ---------- --------------- Core 2 Quad Q9550 4.3.3 12.19s 5.11s 138% Athlon 64 X2 3800+ 4.3.3 7.34s 6.61s 11% Opteron 2378 4.3.2 6.13s 5.60s 9% Opteron 2352 4.3.3 8.16s 7.96s 2% Xeon 3.00GHz 4.3.3 18.98s 14.67s 29% Apparently Intel systems are more susceptible to this effect.=20 Can anyone reproduce these results? And could anyone explain, why this happens? Thanks in advance -Andreas --=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Andreas Sch=E4fer Cluster and Metacomputing Working Group Friedrich-Schiller-Universit=E4t Jena, Germany 0049/3641-9-46376 PGP/GPG key via keyserver I'm a bright... http://www.the-brights.net =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (\___/) (+'.'+) (")_(") This is Bunny. Copy and paste Bunny into your=20 signature to help him gain world domination! --PEIAKu/WMn1b1Hv9 Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="slowdown.slow.c" Content-Transfer-Encoding: quoted-printable Content-length: 1858 #define GRID_WIDTH 1024 #define GRID_HEIGHT 1024 #define MAX_STEPS 1024 #include #include #include double grid[GRID_HEIGHT][GRID_WIDTH]; double gridNewArray[GRID_HEIGHT][GRID_WIDTH]; double gridOldArray[GRID_HEIGHT][GRID_WIDTH]; void printAddress(void *p) { printf("address %p\n", p); } void test(double (*grid)[GRID_WIDTH]) { double (*gridOld)[GRID_WIDTH] =3D gridOldArray; double (*gridNew)[GRID_WIDTH] =3D gridNewArray; printAddress(&gridNew[0][0]); printAddress(&gridOld[0][0]); // copy initial state for (int y =3D 0; y < GRID_HEIGHT; ++y) { memcpy(&gridOld[y][0], &grid[y][0], GRID_WIDTH * sizeof(double)); memset(&gridNew[y][0], 0, GRID_WIDTH * sizeof(double)); } // update matrices for (int step =3D 0; step < MAX_STEPS; ++step) { for (int y =3D 1; y < GRID_HEIGHT-1; ++y)=20 for (int x =3D 1; x < GRID_WIDTH-1; ++x) gridNew[y][x] =3D=20 (gridOld[y-1][x ] +=20 gridOld[y ][x-1] +=20 gridOld[y ][x ] +=20 gridOld[y ][x+1] +=20 gridOld[y+1][x ]) * 0.2; double (*tmp)[GRID_WIDTH] =3D gridOld; gridOld =3D gridNew; gridNew =3D tmp; } // copy result back for (int y =3D 0; y < GRID_HEIGHT; ++y) memcpy(&grid[y][0], &gridOld[y][0], GRID_WIDTH * sizeof(double)); } void setupGrid() { for (int y =3D 0; y < GRID_HEIGHT; ++y) for (int x =3D 0; x < GRID_WIDTH; ++x) grid[y][x] =3D 0; for (int y =3D 10; y < 20; ++y) for (int x =3D 10; x < 20; ++x) grid[y][x] =3D 1; } int main(int argc, char** argv) { setupGrid(); test(grid); printf("res: %f\n", grid[10][10]); // prevent dead code elimination return 0; } --PEIAKu/WMn1b1Hv9 Content-Type: application/octet-stream Content-Disposition: attachment; filename="slowdown.fast" Content-Transfer-Encoding: base64 Content-length: 11379 f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAwARAAAAAAABAAAAAAAAAAGASAAAA AAAAAAAAAEAAOAAKAEAAHgAbAAYAAAAFAAAAQAAAAAAAAABAAEAAAAAAAEAA QAAAAAAAMAIAAAAAAAAwAgAAAAAAAAgAAAAAAAAAAwAAAAQAAABwAgAAAAAA AHACQAAAAAAAcAJAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAAAAAAAAABAAAA BQAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAwKAAAAAAAADAoAAAAAAAAA ACAAAAAAAAEAAAAGAAAAGA4AAAAAAAAYDmAAAAAAABgOYAAAAAAAEAIAAAAA AABIAoABAAAAAAAAIAAAAAAAAgAAAAYAAABADgAAAAAAAEAOYAAAAAAAQA5g AAAAAACgAQAAAAAAAKABAAAAAAAACAAAAAAAAAAEAAAABAAAAIwCAAAAAAAA jAJAAAAAAACMAkAAAAAAACAAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAFDldGQE AAAA8AgAAAAAAADwCEAAAAAAAPAIQAAAAAAAPAAAAAAAAAA8AAAAAAAAAAQA AAAAAAAAUeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAACAAAAAAAAABS5XRkBAAAABgOAAAAAAAAGA5gAAAAAAAYDmAA AAAAAOgBAAAAAAAA6AEAAAAAAAABAAAAAAAAAIAVBGUAKAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAL2xpYjY0 L2xkLWxpbnV4LXg4Ni02NC5zby4yAAQAAAAQAAAAAQAAAEdOVQAAAAAAAgAA AAYAAAAJAAAAAAAAAAMAAAAFAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAA AgAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABoA AAASAAAAAAAAAAAAAAAAAAAAAAAAACcAAAASAAAAAAAAAAAAAAAAAAAAAAAA AC4AAAASAAAAAAAAAAAAAAAAAAAAAAAAAABfX2dtb25fc3RhcnRfXwBsaWJj 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAD//////////wAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAA AAAAAQAAAAAAAAAQAAAAAAAAAAwAAAAAAAAAaARAAAAAAAANAAAAAAAAALgI QAAAAAAABAAAAAAAAACwAkAAAAAAAPX+/28AAAAA2AJAAAAAAAAFAAAAAAAA AHADQAAAAAAABgAAAAAAAAD4AkAAAAAAAAoAAAAAAAAAWAAAAAAAAAALAAAA AAAAABgAAAAAAAAAFQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAA6A9gAAAAAAAC AAAAAAAAAEgAAAAAAAAAFAAAAAAAAAAHAAAAAAAAABcAAAAAAAAAIARAAAAA AAAHAAAAAAAAAAgEQAAAAAAACAAAAAAAAAAYAAAAAAAAAAkAAAAAAAAAGAAA AAAAAAD+//9vAAAAANgDQAAAAAAA////bwAAAAABAAAAAAAAAPD//28AAAAA yANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAOYAAAAAAAAAAAAAAAAAAAAAAAAAAA AJYEQAAAAAAApgRAAAAAAAC2BEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0ND OiAoR2VudG9vIDQuMy4zLXIyIHAxLjIsIHBpZS0xMC4xLjUpIDQuMy4zAABH Q0M6IChHZW50b28gNC4zLjMtcjIgcDEuMiwgcGllLTEwLjEuNSkgNC4zLjMA AEdDQzogKEdlbnRvbyA0LjMuMy1yMiBwMS4yLCBwaWUtMTAuMS41KSA0LjMu MwAAR0NDOiAoR2VudG9vIDQuMy4zLXIyIHAxLjIsIHBpZS0xMC4xLjUpIDQu My4zAABHQ0M6IChHZW50b28gNC4zLjMtcjIgcDEuMiwgcGllLTEwLjEuNSkg NC4zLjMAAEdDQzogKEdlbnRvbyA0LjMuMy1yMiBwMS4yLCBwaWUtMTAuMS41 KSA0LjMuMwAAR0NDOiAoR2VudG9vIDQuMy4zLXIyIHAxLjIsIHBpZS0xMC4x LjUpIDQuMy4zAAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5pbnRlcnAA Lm5vdGUuQUJJLXRhZwAuZ251Lmhhc2gALmR5bnN5bQAuZHluc3RyAC5nbnUu dmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsYS5keW4ALnJlbGEucGx0AC5p bml0AC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lX2hkcgAuZWhfZnJh bWUALmN0b3JzAC5kdG9ycwAuamNyAC5keW5hbWljAC5nb3QALmdvdC5wbHQA LmRhdGEALmJzcwAuY29tbWVudAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsA AAABAAAAAgAAAAAAAABwAkAAAAAAAHACAAAAAAAAHAAAAAAAAAAAAAAAAAAA AAEAAAAAAAAAAAAAAAAAAAAjAAAABwAAAAIAAAAAAAAAjAJAAAAAAACMAgAA AAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAANQAAAAUAAAAC AAAAAAAAALACQAAAAAAAsAIAAAAAAAAoAAAAAAAAAAUAAAAAAAAACAAAAAAA AAAEAAAAAAAAADEAAAD2//9vAgAAAAAAAADYAkAAAAAAANgCAAAAAAAAHAAA AAAAAAAFAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA7AAAACwAAAAIAAAAAAAAA +AJAAAAAAAD4AgAAAAAAAHgAAAAAAAAABgAAAAEAAAAIAAAAAAAAABgAAAAA AAAAQwAAAAMAAAACAAAAAAAAAHADQAAAAAAAcAMAAAAAAABYAAAAAAAAAAAA AAAAAAAAAQAAAAAAAAAAAAAAAAAAAEsAAAD///9vAgAAAAAAAADIA0AAAAAA AMgDAAAAAAAACgAAAAAAAAAFAAAAAAAAAAIAAAAAAAAAAgAAAAAAAABYAAAA /v//bwIAAAAAAAAA2ANAAAAAAADYAwAAAAAAADAAAAAAAAAABgAAAAEAAAAI AAAAAAAAAAAAAAAAAAAAZwAAAAQAAAACAAAAAAAAAAgEQAAAAAAACAQAAAAA AAAYAAAAAAAAAAUAAAAAAAAACAAAAAAAAAAYAAAAAAAAAHEAAAAEAAAAAgAA AAAAAAAgBEAAAAAAACAEAAAAAAAASAAAAAAAAAAFAAAADAAAAAgAAAAAAAAA GAAAAAAAAAB7AAAAAQAAAAYAAAAAAAAAaARAAAAAAABoBAAAAAAAABgAAAAA AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAdgAAAAEAAAAGAAAAAAAAAIAE QAAAAAAAgAQAAAAAAABAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAAAAA AIEAAAABAAAABgAAAAAAAADABEAAAAAAAMAEAAAAAAAA+AMAAAAAAAAAAAAA AAAAABAAAAAAAAAAAAAAAAAAAACHAAAAAQAAAAYAAAAAAAAAuAhAAAAAAAC4 CAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAjQAAAAEA AAACAAAAAAAAAMgIQAAAAAAAyAgAAAAAAAAoAAAAAAAAAAAAAAAAAAAACAAA AAAAAAAAAAAAAAAAAJUAAAABAAAAAgAAAAAAAADwCEAAAAAAAPAIAAAAAAAA PAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACjAAAAAQAAAAIAAAAA AAAAMAlAAAAAAAAwCQAAAAAAANwAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAA AAAAAAAArQAAAAEAAAADAAAAAAAAABgOYAAAAAAAGA4AAAAAAAAQAAAAAAAA AAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAALQAAAABAAAAAwAAAAAAAAAoDmAA AAAAACgOAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAC7 AAAAAQAAAAMAAAAAAAAAOA5gAAAAAAA4DgAAAAAAAAgAAAAAAAAAAAAAAAAA AAAIAAAAAAAAAAAAAAAAAAAAwAAAAAYAAAADAAAAAAAAAEAOYAAAAAAAQA4A AAAAAACgAQAAAAAAAAYAAAAAAAAACAAAAAAAAAAQAAAAAAAAAMkAAAABAAAA AwAAAAAAAADgD2AAAAAAAOAPAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAA AAAACAAAAAAAAADOAAAAAQAAAAMAAAAAAAAA6A9gAAAAAADoDwAAAAAAADAA AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA1wAAAAEAAAADAAAAAAAA ABgQYAAAAAAAGBAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA AAAAAN0AAAAIAAAAAwAAAAAAAABAEGAAAAAAACgQAAAAAAAAIACAAQAAAAAA AAAAAAAAACAAAAAAAAAAAAAAAAAAAADiAAAAAQAAAAAAAAAAAAAAAAAAAAAA AAAoEAAAAAAAAEkBAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAA AAMAAAAAAAAAAAAAAAAAAAAAAAAAcREAAAAAAADrAAAAAAAAAAAAAAAAAAAA AQAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAOAZAAAA AAAAWAUAAAAAAAAdAAAAIAAAAAgAAAAAAAAAGAAAAAAAAAAJAAAAAwAAAAAA AAAAAAAAAAAAAAAAAAA4HwAAAAAAAJABAAAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQBwAkAA AAAAAAAAAAAAAAAAAAAAAAMAAgCMAkAAAAAAAAAAAAAAAAAAAAAAAAMAAwCw AkAAAAAAAAAAAAAAAAAAAAAAAAMABADYAkAAAAAAAAAAAAAAAAAAAAAAAAMA BQD4AkAAAAAAAAAAAAAAAAAAAAAAAAMABgBwA0AAAAAAAAAAAAAAAAAAAAAA AAMABwDIA0AAAAAAAAAAAAAAAAAAAAAAAAMACADYA0AAAAAAAAAAAAAAAAAA AAAAAAMACQAIBEAAAAAAAAAAAAAAAAAAAAAAAAMACgAgBEAAAAAAAAAAAAAA AAAAAAAAAAMACwBoBEAAAAAAAAAAAAAAAAAAAAAAAAMADACABEAAAAAAAAAA AAAAAAAAAAAAAAMADQDABEAAAAAAAAAAAAAAAAAAAAAAAAMADgC4CEAAAAAA AAAAAAAAAAAAAAAAAAMADwDICEAAAAAAAAAAAAAAAAAAAAAAAAMAEADwCEAA AAAAAAAAAAAAAAAAAAAAAAMAEQAwCUAAAAAAAAAAAAAAAAAAAAAAAAMAEgAY DmAAAAAAAAAAAAAAAAAAAAAAAAMAEwAoDmAAAAAAAAAAAAAAAAAAAAAAAAMA FAA4DmAAAAAAAAAAAAAAAAAAAAAAAAMAFQBADmAAAAAAAAAAAAAAAAAAAAAA AAMAFgDgD2AAAAAAAAAAAAAAAAAAAAAAAAMAFwDoD2AAAAAAAAAAAAAAAAAA AAAAAAMAGAAYEGAAAAAAAAAAAAAAAAAAAAAAAAMAGQBAEGAAAAAAAAAAAAAA AAAAAAAAAAMAGgAAAAAAAAAAAAAAAAAAAAAAAQAAAAQA8f8AAAAAAAAAAAAA AAAAAAAAEQAAAAECFwDoD2AAAAAAAAAAAAAAAAAAJwAAAAACEgAUDmAAAAAA AAAAAAAAAAAAOAAAAAACEgAUDmAAAAAAAAAAAAAAAAAASwAAAAECFQBADmAA AAAAAAAAAAAAAAAAVAAAACAAGAAYEGAAAAAAAAAAAAAAAAAAXwAAABIADQDg B0AAAAAAAAIAAAAAAAAAbwAAABIADQDABEAAAAAAAAAAAAAAAAAAdgAAABEA GQBgEGAAAAAAAAAAgAAAAAAAewAAACAAAAAAAAAAAAAAAAAAAAAAAAAAigAA ACAAAAAAAAAAAAAAAAAAAAAAAAAAngAAABEAGQBgEOAAAAAAAAAAgAAAAAAA qwAAABIAAAAAAAAAAAAAAAAAAAAAAAAAxQAAABIADQBABkAAAAAAABQAAAAA AAAA0gAAABIADgC4CEAAAAAAAAAAAAAAAAAA2AAAABIAAAAAAAAAAAAAAAAA AAAAAAAA7AAAABIAAAAAAAAAAAAAAAAAAAAAAAAACwEAABIADQCwBUAAAAAA AIIAAAAAAAAAFQEAABEADwDICEAAAAAAAAQAAAAAAAAAJAEAABAAGAAYEGAA AAAAAAAAAAAAAAAAMQEAABECGAAgEGAAAAAAAAAAAAAAAAAAPgEAABECEwAw DmAAAAAAAAAAAAAAAAAASwEAABIADQDwB0AAAAAAAIkAAAAAAAAAWwEAABEA GQBgEGABAAAAAAAAgAAAAAAAaAEAABAA8f8oEGAAAAAAAAAAAAAAAAAAdAEA ABIADQBgBkAAAAAAADUBAAAAAAAAeQEAABAA8f9gEOABAAAAAAAAAAAAAAAA fgEAABAA8f8oEGAAAAAAAAAAAAAAAAAAhQEAABIADQCgB0AAAAAAADgAAAAA AAAAigEAABIACwBoBEAAAAAAAAAAAAAAAAAAAHNsb3dkb3duLmZhc3QuYwBf R0xPQkFMX09GRlNFVF9UQUJMRV8AX19pbml0X2FycmF5X2VuZABfX2luaXRf YXJyYXlfc3RhcnQAX0RZTkFNSUMAZGF0YV9zdGFydABfX2xpYmNfY3N1X2Zp bmkAX3N0YXJ0AGdyaWQAX19nbW9uX3N0YXJ0X18AX0p2X1JlZ2lzdGVyQ2xh c3NlcwBncmlkT2xkQXJyYXkAX19wcmludGZfY2hrQEBHTElCQ18yLjMuNABw cmludEFkZHJlc3MAX2ZpbmkAbWFsbG9jQEBHTElCQ18yLjIuNQBfX2xpYmNf c3RhcnRfbWFpbkBAR0xJQkNfMi4yLjUAc2V0dXBHcmlkAF9JT19zdGRpbl91 c2VkAF9fZGF0YV9zdGFydABfX2Rzb19oYW5kbGUAX19EVE9SX0VORF9fAF9f bGliY19jc3VfaW5pdABncmlkTmV3QXJyYXkAX19ic3Nfc3RhcnQAdGVzdABf ZW5kAF9lZGF0YQBtYWluAF9pbml0AA== --PEIAKu/WMn1b1Hv9 Content-Type: application/x-sh Content-Disposition: attachment; filename="test.sh" Content-Transfer-Encoding: quoted-printable Content-length: 259 #!/bin/bash=0A= gcc -std=3Dc99 -Wall -Werror -O2 slowdown.slow.c -o slowdown.slow=20=0A= gcc -std=3Dc99 -Wall -Werror -O2 slowdown.fast.c -o slowdown.fast=20=0A= =0A= time nice -19 taskset 0x1 ./slowdown.slow=0A= time nice -19 taskset 0x1 ./slowdown.fast=0A= --PEIAKu/WMn1b1Hv9-- --FkmkrVfFsRoUs1wW Content-Type: application/pgp-signature Content-Disposition: inline Content-length: 198 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) iEYEARECAAYFAkpV/IkACgkQxQzSAzXqsyY1mQCghOQvI/1mpYoQYdNK5CaNb1GR 6wwAmwSBdhYCic+1vOA5IPEu8ILKStMd =oUVG -----END PGP SIGNATURE----- --FkmkrVfFsRoUs1wW--