From owner-FreeBSD-users-jp@jp.freebsd.org  Wed Jan 29 17:02:05 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta4/8.7.3) id RAA22531
	Wed, 29 Jan 1997 17:02:05 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta4/8.7.3) with ESMTP id RAA22526
	for <FreeBSD-users-jp@jp.freebsd.org>; Wed, 29 Jan 1997 17:02:03 +0900 (JST)
Received: from localhost (localhost [127.0.0.1]) by puutalo.geo.titech.ac.jp (8.7.6/8.7.3) with ESMTP id RAA06175 for <FreeBSD-users-jp@jp.freebsd.org>; Wed, 29 Jan 1997 17:01:42 +0900 (JST)
Message-Id: <199701290801.RAA06175@puutalo.geo.titech.ac.jp>
To: FreeBSD-users-jp@jp.freebsd.org
X-Mailer: Mew version 1.03 on Emacs 19.28.1, Mule 2.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Date: Wed, 29 Jan 1997 17:01:41 +0900
From: "Naoki Kobayashi" <shibata@geo.titech.ac.jp>
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 9199
Subject: [FreeBSD-users-jp 9199] performance on numerical calculation depends on shells?
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$B>.NS!wCOOG!%El9)Bg$G$9!%(B

$B;O$a$^$7$F!%#2F|A0$K$3$N(B ML $B$K2C$($F$b$i$C$?$N$G$9$,!$2a5n$N%a!<%k$G$b(B
$B$"$^$jOCBj$,$J$$?tCM7W;;$N%Q%U%)!<%^%s%9$K$D$$$F$N<ALd$G$9!%(B

$B!N<ALd$NMWE@!O(B
$B?tCM7W;;B.EY$O(B shell $B$K$h$C$F(B 2 $BG\DxEYJQ$o$j$&$k$+!)JQ$o$k$H$7$F$=$NM}(B
$BM3$r65$($F2<$5$$!%(B

$B!N<ALd$N>\:Y!O(B
$BKvHx$KIU$1$?=ENOB?BNAj8_:nMQ$N7W;;B.EY$N7k2L$G$9!%(Bmath library $B$O(B 
make -DHAVE_FPU $B$G:F9=C[$7$?$b$N$r;HMQ$7$F$$$^$9!%0J2<$,7k2L$G$9!%(B

tcsh% cc -DRUN -DN=20 nbody.c -O2 -lm -o nbody
tcsh% /usr/bin/time ./nbody
      104.32 real       104.08 user         0.03 sys
tcsh% bash
bash# /usr/bin/time ./nbody
       50.37 real        50.24 user         0.00 sys

$B$3$N$h$&$K(B shell $B$K$h$C$F7W;;B.EY$,G\$[$I0c$$$^$9!%0J>e$N7W;;$K;HMQ$7(B
$B$?5!<o9=@.$O(B

FreeBSD 2.2-RELEASE
CPU: Pentium Pro (199.31-MHz 686-class CPU)
real memory  = 33554432 (32768K bytes)

$B$G$9$,!$F1MM$J7k2L$,(B P6 + Linux $B$G$bJs9p$5$l$F$$$^$9!%$^$?G[NsNN0h$r(B 
malloc $B$G<h$k$H(B shell $B$K$h$k0c$$$O$J$/(B 70 $BICDxEY$N<B9T;~4V$K$J$j$^$9!%(B
$B99$K(Btcsh $B$,$$$D$bCY$$$+$H$$$&$H$=$&$G$b$"$j$^$;$s!%7k2L$,5U$K$J$k>l9g(B
$B$b$"$j$^$9!%(B

$B0J>e$N$h$&$J798~$rG'<1$7$F$*$i$l$?J}!$M}M3$,J,$+$kJ}$*JX$j2<$5$$!%(B

---------------------------- nbody.c --------------------------------
#include <math.h>

#define nx N
#define ny N
#define nz N
#define n nx*ny*nz

int main() {
  double m[n];
  double rx[n], ry[n], rz[n];
  double ax[n], ay[n], az[n];
  double tmp;
  int ix, iy, iz, i, j;

  /* set mass */
  for (i = 0; i < n; i++) {
    m[i] = 1.0;
  }

  /* set position */
  for (ix = 0; ix < nx; ix++) {
    for (iy = 0; iy < ny; iy++) {
      for (iz = 0; iz < nz; iz++) {
	i = ix + nx * (iy + ny * iz);
	rx[i] = (double)ix / (double)nx;
	ry[i] = (double)iy / (double)ny;
	rz[i] = (double)iz / (double)nz;
      }
    }
  }

  /* get acceleration */
  for (i = 0; i < n; i++) {
    ax[i] = 0;
    ay[i] = 0;
    az[i] = 0;

    for (j = 0; j < n; j++) {
      if (j != i) {
	tmp = (rx[i] - rx[j]) * (rx[i] - rx[j])
	  + (ry[i] - ry[j]) * (ry[i] - ry[j])
	  + (rz[i] - rz[j]) * (rz[i] - rz[j]);
#ifdef RUN
	tmp = sqrt(tmp);
#endif
	tmp = tmp * tmp * tmp;
	tmp = m[j] / tmp;
	ax[i] = ax[i] + tmp * (rx[i] - rx[j]);
	ay[i] = ay[i] + tmp * (ry[i] - ry[j]);
	az[i] = az[i] + tmp * (rz[i] - rz[j]);
      }
    }
  }

  exit(0);
}
--------------------------------------------------------------------

---------------
Naoki Kobayashi
Department of Earth and Planetary Sciences, Tokyo Institute of Technology
2-12-1 Ookayama, Meguro, Tokyo 152, JAPAN
TEL: +81-3-5734-2717 FAX: +81-3-5499-4093 E-mail: shibata@geo.titech.ac.jp
