中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

VCLTestToolのMacOSX PowerPC版公式は私のビルドである

2010-04-24 17:27:50 | 日記
OpenOffice.orgの品質保証には、VCLTestToolというのを使うこともできる。なぜ興味を持っているかというと、自動的に品質保証できるからだ。Thosten Zihemも、色々述べている。

私はMacOSX版のマイルストーンビルドも行っているがも参照のこと。これをSUN HamburgのThorsten Bosbachさん採用していただいたことがある。実際、VCLTestTool2.4のページからも確認できる。

> Binaries are taken from Sun StarOffice builds, exept:
> MacOS X PPC: this is based on Nakata Maho's builds

これは、毎回マイルストーンビルドを行うという安定した仕事の上に、他の人が安心して乗っかれるという好例であろう。論文では引用されたというのがあたるかもしれない。とてもうれしいものであった。

理研次世代スパコンには二種類の四倍精度が入っている。

2010-04-24 16:08:39 | 日記
(4/23 19:35大幅加筆修正)
次世代スパコンは二種類の4倍長精度演算をサポート:IEEE754R及びdouble-double形式。

多倍長精度計算に興味を持っている人間としてはうれしい限りである。
藤澤さん経由で次世代スパコンのページを見た横川さんのプレゼンのp.10が私にとって興味深い。

> プログラム言語,コンパイラ
> Fortran 2003,XPFortran,C,C++
> GNU C/C++拡張仕様
> 4倍長精度演算をサポート:IEEE754R及びdouble-double形式

double-doubleは富士通やIBMのコンパイラは昔からサポートしていたと聞いたことがある。しかし富士通のは、情報しらないのよね...
IEEE 754RはIEEE 754 2008が発効された現在、言葉としてあまり良くわからない。多分binary128のことなんだろうか。Sparc64は四倍精度サポートしているが、次世代スパコンはどうなんだろうか。昔、姫野先生には、四倍精度入れたかったけど入らなかったんだよねとか聞いたことがあるが...実際は入っていた。命令をみよう。SPARC64TM VIIIfx Extensionsにそれらしきことが書いてある。どうやらquad precisionの命令のいくつかはSIMDにはできないようである。p.61 (p.71)参照。FADD, FMUL, FSUB, FDIVなど加減乗除はそうなっていた。従ってIEEE 754rの四倍精度はかなり遅いだろうと予測される。かといって
double-doubleは速いのだろうか? あまりそうとは思えない。FMAを使うから
速いのかもしれない、ただ、後藤和茂さんは、クロックは押さえられるかもしれないが、キャッシュに対するインパクトが大きく使うのが難しいといってたきがする。

なぜ二つあるのかは理解には苦しむ。FORTRANでREAL*16として使うのだろうか。危険である。書き出したとき、double-doubleで書くか、IEEE 754rの四倍精度(?)で書くか、でまた、読み出しはどちらで行うかで、実装のパターンも含め予期せぬ結果が出てしまうと考えられる。

正当的なのは、double-doubleを止めることだろう。double-doubleはpoor man's solutionとしては有効だし、我がMPACKでもdouble-doubleは使っている。ただあまり有効な数値計算としてはお勧めしない。
たとえば、IEEE 754の規格策定に関わった、W. Kahan教授をしてgrubby (p.5; 汚い、ウジが湧いたの意)
> A Fused MAC also speeds up a grubby “Doubled-Double” approximation
> to Quadruple-Precision arithmetic by
> unevaluated sums of pairs of Doubles.
と言わしめたし、C99のlong doubleとしても使えない


Intel Pentium, Coreなどハードウェアでサポートのないものに関して、速い安いちょっとまずい、ということで使わざるを得ないなどと微妙、複雑な気分で実装している。

トップページに平尾先生。どっちも上司だった、であるが、中田はスパコンのことは素人並みにしか知らない。

数値演算は難しいね...