From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 91DD97EE89 for ; Sun, 30 Oct 2016 07:43:06 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=berke.durak@gmail.com; spf=Pass smtp.mailfrom=berke.durak@gmail.com; spf=None smtp.helo=postmaster@mail-ua0-f171.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of berke.durak@gmail.com) identity=pra; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="berke.durak@gmail.com"; x-sender="berke.durak@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of berke.durak@gmail.com designates 209.85.217.171 as permitted sender) identity=mailfrom; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="berke.durak@gmail.com"; x-sender="berke.durak@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ua0-f171.google.com) identity=helo; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="berke.durak@gmail.com"; x-sender="postmaster@mail-ua0-f171.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AD80pTxEYvHkIgh1XC/9utp1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ75o8mwAkXT6L1XgUPTWs2DsrQf2rCQ7P6rADVYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZv?= =?us-ascii?q?IaytQ8iJ3p7xiL75osSLKyxzxxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP?= =?us-ascii?q?5Xz247bXianhL7+9vitMU7q3cY6Lod8JtLWKD+OqA5VqAQWD8vNmRw4MzwqTHC?= =?us-ascii?q?SxGO7z0SSDNFvABPBl3v4Qv5U9/drzHztaIp0iSAPsCwQa0uUDeK4KJiSRuugy?= =?us-ascii?q?ACYW1quFrLg9B92foI6CmqoAZyltbZ?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BeAAAglhVYhqvZVdFaA4NaAQEBAQGBd?= =?us-ascii?q?AeseYtyggeGI4F8Bz8UAQEBAQEBAQEBAQESAQEBCAsLCR0wgjMYgjARHQEbHgM?= =?us-ascii?q?SAwYHMAcCJAERAQUBIjWIFwEDF5UYjUWCCIEyPzKLRoFrgl8Fg04KGScNVIMhH?= =?us-ascii?q?QIGEIYtiT0mggULLYJcBY9EilSBPiyORpAEjRGCQBMegREegQiDQiOBWx40iAU?= =?us-ascii?q?BAQE?= X-IPAS-Result: =?us-ascii?q?A0BeAAAglhVYhqvZVdFaA4NaAQEBAQGBdAeseYtyggeGI4F?= =?us-ascii?q?8Bz8UAQEBAQEBAQEBAQESAQEBCAsLCR0wgjMYgjARHQEbHgMSAwYHMAcCJAERA?= =?us-ascii?q?QUBIjWIFwEDF5UYjUWCCIEyPzKLRoFrgl8Fg04KGScNVIMhHQIGEIYtiT0mggU?= =?us-ascii?q?LLYJcBY9EilSBPiyORpAEjRGCQBMegREegQiDQiOBWx40iAUBAQE?= X-IronPort-AV: E=Sophos;i="5.31,568,1473112800"; d="scan'208,217";a="198633377" Received: from mail-ua0-f171.google.com ([209.85.217.171]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 30 Oct 2016 07:42:53 +0100 Received: by mail-ua0-f171.google.com with SMTP id 51so65862053uai.1 for ; Sat, 29 Oct 2016 23:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=0GsxhyF55Q2RU93LF0rX1FnctDWXdtI5tML6jfB6/YU=; b=YkfmM/AO3LNxVyZjv0/zlhLsGuSYBwDPWuxOj6MhwGTeNsn+BkUoxzOIbHT33lhKAn dhcRDOjzxfYjHtSBGu5rNAQXTrfKBtuIB8e7goMrk8/M8GXtpjrg5yfDCjOqnL7/nF+/ bc1EoqnPZvKRc+Ei5ZG4z2av2wv5qurXxeP70EmABq0aDkxFeBc/O+m7tNNDlrR6cHSG KwL/Es0AHOOfEld0L9eYCIHBMvR+qu3WSdI49t78hhoxg72ckgYGJOj2jDz0F2SGExkR Ac/9nCpvg67M+Sun9hg47U/G8kxzBhG0poU/mZEQdGQwEhRWzdlODYKV+iM33+kpRYG5 +IWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=0GsxhyF55Q2RU93LF0rX1FnctDWXdtI5tML6jfB6/YU=; b=NghzS/S5bjqfkyzwOPsjepF93583qvm39MkJ/fG/SKC6VbqsmAmVSrtdK9VHDd/n4R wDY6SYp1n985s05cv22iIbZ+xYvP9fCTdihk2n8ep3mCb7LHPUtinPX+Wg4VwBHLe6zX 9bIyYEKgT9U4wD2AXBbgsEtZT9WYmxbvOveE7KJOUJ/MsxoqNur5CIU1MLPzD4hqLPiq w3usWLsJiHdRPE2orKoWrADgz5bUaLh+1A5WR+yXhWZNL4dl+Q5DwN92iWJt3WzajKaf Pj3tzUyZAaSCRD3NbSnFLAk3QUv1mwbbbX9127R1LkYFo5ePBEb8f1JvVKB4in8Vgzlq kFJg== X-Gm-Message-State: ABUngvdLTNVCUp3MuW0/rY3jiRYSo3cuvs1g3DYZg3qrxHRuHFw/YQdVWkmSU7bkEGQP/vWiZzRZAd8Sz6wyFw== X-Received: by 10.176.81.245 with SMTP id h50mr2320963uaa.1.1477809771855; Sat, 29 Oct 2016 23:42:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.6.212 with HTTP; Sat, 29 Oct 2016 23:42:51 -0700 (PDT) From: Berke Durak Date: Sat, 29 Oct 2016 23:42:51 -0700 Message-ID: To: caml-list Content-Type: multipart/alternative; boundary=94eb2c1920507f468905400f6646 Subject: [Caml-list] Why is some code compiled with 4.04.0 or 4.05.0 running 2.3 times slower than the same code compiled with 4.03.0? --94eb2c1920507f468905400f6646 Content-Type: text/plain; charset=UTF-8 I compiled and ran a simple matrix-multiplication-style benchmark program written in imperative style with Bigarrays (see below) using versions 4.01.0, 4.03.0, 4.03.0+flambda, 4.04.0+trunk+flambda (with -version 4.04.0+dev9-2015-09-05), 4.04.0+beta2+flambda (4.04.0+beta2) and 4.05+trunk+flambda (4.05.0+dev0-2016-08-01). Execution time increased by a factor of 2.3 from 4.03+flambda to 4.04+trunk+flambda. I tried a few of the newer optimization switches (-rounds X, -unboxed-types, -unbox-closures, etc.) but that didn't make a significant difference. Execution times, repeatable within ~5%: 4.01.0 5.45s 4.03.0 4.28s 4.03.0+flambda 4.44s 4.04.0+trunk+flambda 10.45s 4.04.0+beta2+flambda 10.72s 4.05.0+trunk+flambda 10.36s The test program was: open Bigarray let _ = let m, n, rep = 100, 100, 1000 in let cr m n = Array2.create float64 fortran_layout m n in let a = cr m n in let c = cr m m in let rz = ref 0.0 in let x = ref 0.0 in for r = 1 to rep do for i = 1 to m do for j = 1 to n do a.{i,j} <- !rz; rz := !rz +. 123.45; done done; for i = 1 to m do for j = 1 to m do x := 0.0; for k = 1 to n do x := !x +. a.{i,k} *. a.{k,i} done; c.{i,j} <- !x done done done -- Berke Durak, VA7OBD (CN88) --94eb2c1920507f468905400f6646 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I compiled and ran a simple matrix-multiplication-sty= le benchmark program written in imperative style with Bigarrays (see below)= using versions 4.01.0, 4.03.0, 4.03.0+flambda, 4.04.0+trunk+flambda (with = -version 4.04.0+dev9-2015-09-05), 4.04.0+beta2+flambda (4.04.0+beta2) and 4= .05+trunk+flambda (4.05.0+dev0-2016-08-01).

Execut= ion time increased by a factor of 2.3 from 4.03+flambda to 4.04+trunk+flamb= da.=C2=A0 I tried a few of the newer optimization switches (-rounds X, -unb= oxed-types, -unbox-closures, etc.) but that didn't make a significant d= ifference.=C2=A0

Execution times, repeatable w= ithin ~5%:

4.01.0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A05.45s
4.03.0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04.28s
4.03.0+flambda =C2=A0 =C2=A0= =C2=A0 =C2=A04.44s
4.04.0+trunk+flambda =C2=A010.45s
<= div>4.04.0+beta2+flambda 10.72s
4.05.0+trunk+flambda =C2=A0= 10.36s

The test program was:

open Bigarray

let _ =3D=C2=A0
= =C2=A0 let m, n, rep =3D 100, 100, 1000 in
=C2=A0 let cr m n =3D = Array2.create float64 fortran_layout m n in
=C2=A0 let a =3D cr m= n in
=C2=A0 let c =3D cr m m in
=C2=A0 let rz =3D ref = 0.0 in
=C2=A0 let x =3D ref 0.0 in
=C2=A0 for r =3D 1 t= o rep do
=C2=A0 =C2=A0 for i =3D 1 to m do
=C2=A0 =C2= =A0 =C2=A0 for j =3D 1 to n do
a.{i,j} <- !rz;
rz :=3D !rz += . 123.45;
=C2=A0 =C2=A0 =C2=A0 done
=C2=A0 =C2=A0 done;=
=C2=A0 =C2=A0 for i =3D 1 to m do
=C2=A0 =C2=A0 =C2=A0= for j =3D 1 to m do
x :=3D 0.0;
for k =3D 1 to n do
= =C2=A0x :=3D !x +. a.{i,k} *. a.{k,i}
done;
c.{i,j} <- !x
=C2=A0 =C2=A0 =C2=A0 done
=C2=A0 =C2=A0 done
= =C2=A0 done

--=C2=A0
Berke Durak, VA7OBD= (CN88)
--94eb2c1920507f468905400f6646--