25.5. スカラ並列機と地球シミュレータ 2005年まで
前節で、 1980年代にはアメリカではスーパーコンピューター開発が停滞した、
と書きましたが、これには異論があるかもしれません。というのは、 1980年
代こそ、アメリカで多種多様な並列計算機の研究開発がなされた時期だからです。
研究開発がなされた機械は無数にありますが、科学技術計算である程度高い性
能を実現したものに限定するとそれほど多くはありません。
-
MIMD 分散メモリ並列計算機 nCUBE, Intel iPSC, Touchstone
-
SIMD 分散メモリ並列計算機 CM-1, CM-2, Maspar MP-1
-
MIMD 共有メモリ並列計算機 なんかあった
-
小規模ベクトル機 FPS AP, Ardent TITAN, SCS 等
ピーク性能として、例えば Cray-XMP や YMP を最初に超えたのは Thinking
Machines の CM-2 です。 CM (Connection machine) は W. Daniel Hillis の
MIT での博士論文が元になっており、元々は人工知能のアプリケーションのた
めの並列処理に適した構成、ということで考案されたものです。
最初に作られたものは CM-1 と呼んでいるもので、これは 1 ビットプロセッ
サを1チップに16個いれたものを最大 4096 チップ並列につなぐもので、チッ
プ間の結合はハイパーキューブでした。動作クロックは 5 MHz とかで、浮動
小数点演算には 1000クロック以上かかるので1プロセッサあたり数 kflops、
全体で数100Mflops 程度でした。
しかし、ファインマンのアドバイス等もあって、浮動小数点演算チップをつけ
て浮動小数点演算性能を強化した CM-2 が開発されます。これは 1987 年頃で
あり、最大構成では 2000個の Weitek 1164/1165 チップセットを使って
20Gflops を超える理論ピーク性能を実現しました。当時のCray の最新鋭であ
る YMP に比べて性能では 5 倍以上、消費電力、価格では数分の一であったこ
とになります。
CM-2 は CMOS 高集積 LSI を使った大規模並列計算機のポテンシャルを示すも
のではありましたが、広く使われるにはいたりませんでした。その大きな理由
は、まともなソフトウェアができるまでにとても時間がかかったことです。
個人的な話になりますが、私は 1987年 10-12 月と TMC で CM-2 を使って多
体問題シミュレーションをするためのプログラム開発をしていました。当時は
C* と呼ばれていた C の拡張版が動作するようになりつつあったところで、あ
る程度まともに動く言語は *Lisp と呼ばれる、これは Lisp の拡張というよ
りは、ホスト計算機の Lisp から CM のアセンブラを呼べるようにしたもの、
という感じの代物でした。 我々 (私、プリンストン高等研究所の Piet Hut,
Josh Barnes) は C* でプログラムを書くことにしました。
しかし、これはバグだらけの上に遅い代物で、プログラムを書いているのかコ
ンパイラのバグを見つけているのか良くわからないような作業でした。バグも
結構あからさまなもので、アセンブラコードを見るとすぐにでるべき命令
がそもそもでてないとわかる、といったものが多かった、つまり、まだあまり
だれも使ってないし、開発人員もあまりいない、という感じのものでした。速
度も遅いので、結局計算時間が問題になるところでは全部アセンブラ命令を並
べる、という感じでした。
当時から、数値計算のマーケットに売るためには Fortran があったほうがよ
い、ということは理解はされていたようですが、まともな Fortran がでてく
るのはその数年後になります。このため、 CM-2 はハードウェアとして優位に
立っていた数年間を、まともなコンパイラが存在せずアプリケーションを書き
ようがない、という状況のために棒に振ったことになります。
CM-Fortran は非常に良くできた言語で、 Fortran-8X (と当時は呼ばれていた
ような気がします)の配列演算表記を取りいれ、最小限の拡張で CM の SIMD
構成を使うこと、また、元々の 1bitプロセッサではなく Weitek の FPU をプ
ロセッサ単位とみなすプログラミングモデルにすることで、
-
ハードウェア並列度の削減
-
PE 当りのメモリ量の増加
-
浮動小数点レジスタを有効利用した実行性能の向上
を実現しました。逆にいうと、1990年頃まではこれらは実現されておらず、な
かなか性能がでないシステムであったわけです。優れたハードウェアに対して
適切なソフトウェアを用意するのに時間がかかりすぎて商品として失敗する、
というのはスーパーコンピューター業界ではありふれたことではありますが、
そのなかでもかなり目立った例の1つであると思います。
TMC は 1992 年になって後継の CM-5 を発表しますが、これは Sun SPARC マ
イクロプロセッサに独自開発のベクトルプロセッサをつけたものをノードとす
る MIMD 並列計算機でした。それでも CM-2 の経験は良く生きており、ソース
レベルでのソフトウェア互換性はあって性能も結構でる良い機械でしたが、
その後の汎用マイクロプロセッサの急速な進歩に独自ベクトルプロセッサでは
対応できず、1994 年にいわゆる chapter 11 申請を行います。その後メーカー
として復活することはありませんでした。
今になって考えると、これは 1992 年という時期になってベクトルプロセッサ
アーキテクチャを採用したことの必然的な結果であったと思います。
CM-5 に話がそれました。そういうわけで、 CM-2 は CMOS VLSI の威力を示し
た最初の機械である、というのがここでは重要なことです。(調子のいい機械
で)8MHz と、同時期のベクトルスーパーコンピューターの 1/10 以下の動作ク
ロックながら、圧倒的に高い並列度でより高いピーク性能を実現したわけです。
この流れは、もちろん TMC だけが追求していたわけではなく、多様な計算機
メーカーや、大学等の研究者が様々なアプローチで追求していました。この中
で重要なのは、 Intel iPSC の系列でしょう。
次の章でもう少し詳しく述べることになりますが、 Intel は1971 年に世界最
初の1チップマイクロプロセッサである 4004を完成させ、そのあと 8 ビット
の 8008, 8080, 16ビットの 8086, 80186, 80286、 32ビットの 80386,
80486, Pentium と1チップマイクロプロセッサの性能を順調に向上させてきま
した。当初は Intel 以外にも多数マイクロプロセッサプロセッサメーカーは
あり、また 1980-90年代の RISC 時代には多くの計算機メーカーが独自 RISC
プロセッサを開発しましたが、高速汎用計算機用としては殆ど絶滅することに
なったのは皆さんすでにご存知の通りです。
ここでは、そこまでいかない 80-90 年代の話です。CMOS マイクロプロセッサ
を使った並列計算機が Cray 等のベクトルプロセッサに対して価格性能比で有
利になるのは現在から振り返ると上の CM-2 で使ったような1チップで浮動小
数点演算を実行でき、10Mflops とかそれ以上の速度が可能になった 1985年前
後になります。それ以前から、 80286+80287 ペアを使った並列計算機の試み
等はありましたが、価格性能比が優位とはいいがたいものであったと思います。
しかし、例えば Weitek チップを大量に使った並列計算機は CM-2 以外にあま
り例がなく、価格性能比という観点から重要なのは、Intel 80860 を使った
iPSC/860 と、その後継の Touchstone Delta, Intel Paragon ということにな
ります。現在から振り返ってみると、Weitek チップを大量に使えば素晴らし
い価格性能比が実現できる、というのは殆ど自明なことに思えるのに、それを
ほとんど誰もやらなかったのは何故か?というのは重要な問題ですが、例えば
日本では筑波大学の星野先生を中心とするグループが QCDPAX を作りました。
これは Weitek ではなく LSI Logic 64132 ですが、それに制御用の 68020 と
インターフェースのゲートアレイをつけたものをノード計算機とする超並列機
でした。QCDPAX は科学技術研究費補助金(特別推進研究)で開発されたもので
すから、研究費は3億円程度のはずで、それで 1989年にほぼ世界最速の
14Gflops に到達した記念すべき機械です。
しかし、 QCDPAX は同時に、汎用プロセッサ+数値演算専用チップでノードを
構成する並列計算機、というアプローチの限界をも示しています。つまり、
同時期のベクトルプロセッサに比べて、実験システムでは確かに 10 倍程度価
格性能比がよいのですが、その程度に留まる、ということです。この結果が、
商品化すると価格性能比が 3 倍程度になり、さらに 1-2 年たつと競争力を失
うことになります。
これは、数値演算専用チップというのが、実は 1985 年から 1990 年頃までと
いう非常に短い期間だけに成り立つ製品であった、ということでもあります。
1989 年には Intel から 80860 がアナウンスされました。これはパイプライ
ン化した浮動小数点演算ユニットをもつマイクロプロセッサであり、汎用マイ
クロプロセッサ+数値演算専用チップ、という構成よりはるかに容易、かつ安
価にシステムを構成することを可能にしたからです。
こうして、 1990 年代にはいるとそれなりの浮動小数点演算能力をもったマイ
クロプロセッサを単純に沢山並べる、というアプローチが並列計算機の世界を
支配することになります。 1992 年頃までは、先程から何度か名前がでてくる
Intel 80860 が良く使われていましたが、このチップ自体は商業的な成功を収
めたとはいいがたく、 Intel はこのチップの後継を作る代わりに 80486 の後
継である 80586 (Pentium) にパイプライン化した演算器を搭載し、高い演算
能力をもたせました。この高い数値演算性能は Pentium Pro から現在の Core
Duo 2 まで継続して強化されつづけることになります。
Pentium および当時の RISC マイクロプロセッサは、クロックを上げることで
当時のベクトルプロセッサのスカラ性能と同等、あるいはそれを上回る性能を、
ほぼ 1/100 のシステムコストで実現しました。さらに、完全にパイプライン
化した演算器により、ベクトル計算機との違いもほとんど演算器の数だけの 2-4
倍程度の差でしかなくなってきました。
Beowulf (PC クラスタ)という考え方がでてきてのはこの頃になります。その
ちょっと前に、 NOW (Netowork of Workstation) という話がでてきて、 Sun
や IBM の RISC プロセッサを使わワークステーションをネットワークでつな
いだもので並列処理することでベクトル並列機より高い価格性能比が実現でき
る、という主張がなされていました。 IBM は、基本的にその考え方による、
SP というワークステーションを高速ネットワークでつないだシステムを開発、
販売していました。
しかし、これらはいずれもそれほど規模が大きいものではなく、初期の SP の場合で
64 ノード程度、 PC クラスタも 16台で結構大きい、という感じのものでした。
一方、アメリカの軍関係の研究所では、 ASCI というプログラムが1994 年頃
にスタートします。これは、大雑把にいうと実際の核実験の代わりを数値実験
でやれるようにしよう、というプロジェクトで、そのために 10年間で10億
ドル以上の莫大な予算を投入し、数値計算に使える計算機の能力を2000年代前
半で 100Tflops 以上まで引き上げる、というものでした。このためには1万プ
ロセッサ以上を結合した並列計算機を作ることが求められました。
1万台を結合するためにとられたアプローチは基本的は以下の2つです。
一つは、 Intel Paragon で採用されたフラットなメッシュネットワークを単
純に拡張して巨大なシステムを構成するもので、 1997 年に完成した ASCI
Red で採用されました。これは当初 200MHz の Pentium Pro を9000台搭載し、
1.8 Tflops を実現しました。2年ほど後に 333MHz の Pentium II にのせかえ
て Top 500 での1位を守ったことには驚いたものです。
もう一つは、 Blue, White, Q, Purple で採用された、基本ノードを複数の
CPU の共有メモリノードとすることでノード数を減らし、さらに階層的なネッ
トワークにする、というものです。
ここでは、 ASCI Q を取り上げることにしましょう。 Q は Compaq (納入時に
は HP) の Alphaserver ES45 を基本ノードとしたシステムです。 ES45 は
1.25GHz の EV68 (Alpha 21264) プロセッサ 4チップからなる共有メモリ並列
システムで、 1ノード 10 Gflops の理論ピーク性能を持ちます。全体システ
ムでは 3072 ノードからなり、 30Tflops のピーク性能を実現するはずだった
わけです。
このシステムは納入、稼働したはずですが、 Top 500 には 2048 ノードの性
能しか記録されていません。 ASCI Q が完成した時点で既に地球シミュレータ
は稼働しており、その結果 Q は一度も Top 500 の一位を占めることなく終わ
りました。また、 LINPACK 性能自体、理論ピークの6割程度とかなり低いもの
でした。
LINPACK ですら低い性能しか実現できなかったことは、他のアプリケーション
ではもっと性能がでなかったことを意味しています。実際、 2004年の国際会
議 SC94 で最優秀論文賞をとった論文は、 ASCI Q でアプリケーションで性能
がでない理由を解明し、ある程度の性能向上に成功した、というものでした。
そんなものが研究として認められるほどひどい計算機であった、ということで
す。
ASCI Q の調達コストは 2 億ドルと言われており、ピーク性能でみた価格性能
比で地球シミュレータとの差が殆どありませんでした。このため、地球シミュ
レータが ASCI プロジェクトに与えたインパクトは極めて大きなものでした。
時代遅れと思っていたベクトル計算機が時代の先端であるはずの高速スカラプ
ロセッサに理論ピークも大して負けず、アプリケーションの実効性能では大き
く上回ってしまったからです。
ASCI プロジェクトで主流であったマイクロプロセッサによる SMPノードをネッ
トワーク結合、というアプローチは破綻していたことにようやく気が付いたわ
けです。
ASCI プロジェクトは、少なくとも並列計算機のアーキテクチャ開発としては
悲惨な失敗であったことは疑う余地がありません。地球シミュレータが
Computonik などと言われたのは、それが素晴らしい機械であったからという
面はありますが、それ以上に比較される対象であった ASCI マシン群があまり
にもひどい代物だったからです。どのくらいひどいかというのを簡単にまとめ
ておきましょう。
ASCI Q は12000 プロセッサです。簡単のため 240億としておくと、1プロセッ
サ 200万円です。性能は 1.25GHz, 2.5Gflops です。 2002 年という時期を考
えると、 既に 2GHz Pentium 4 は存在しており、20万円程度で 4Gflops のピー
ク性能が実現できました。
ベーシックな指標として、価格当りの主記憶バンド幅とネットワークバンド幅
を考えてみます。演算ピーク性能は地球シミュレータと Q であまり変わらな
いというのはすでにみたとおりだからです。地球シミュレータのノード価格は、
1ノード 1000万円としておきます。 Q は4チップの1ノードで 800万円です。
まず、メモリバンド幅ですが、地球シミュレータは STREAM ベンチマークのう
ち COPY と言われるもので 32 GB/s を記録しています。従って、 1 GB/s あ
たり 32万円です。これに対して、 Q の 1 ノードである ES45 は、 1.25GHz
での数字はありませんが 1GHz ノードで 3.5 GB/s という数字が残っています。
従って、1GB/s あたり 228万円となり、1桁近く悪いことになります。
ちなみに、 Intel P4 で最初期の RDRAM をつけたものでは STREAM に数字は
1.5GB/s 程度であり、値段が 20万として 1GB/s 当り 13万です。地球シミュ
レータの数字がなかなか良いことがわかると思います。
地球シミュレータのネットワークは 1 ノード(8プロセッサ)あたり12.3GB/s
ですから、単純に値段に換算すると 1GB/s あたり 650万円となります。
Q のネットワークは多段 Quadrics ですが、1ノード当り 500MB/s です。従っ
て、1GB/s あたり 1600万円となります。ちなみに、この頃は Gigabit
Ethernet がマザーボードについてくるようになった時期です。 PC クラスタ
でGbE ですますと、20万あたり 1Gbit/s ですから 1GB/sあたり 160万となり
ます。
こうやってみると、ASCI 計画には何か問題があった、ということは明らかで
す。高価で時代遅れと言われてきた(私も何度となくここで書いている)ベクト
ルプロセッサに比べてさえ、実はより高価になってしまっているからです。
高価になった理由は色々ありますが、
-
物理共有メモリによるコスト増加と、開発費の増加
-
SMP 構成であるにもかかわらず汎用の PCI バス等に依存したための I/O 速
度の不足
の2つが重要でしょう。要するに、メーカーが何も ASCI 用の開発をしないで
漫然と製品系列の中から最も高いものを沢山並べて貧弱なネットワークでつな
ぐ、という感じで作ったから駄目だったわけです。
まあ、こんなことは今から振り返れば自明なことですが、アメリカはその結果
1000億ドル近くをドブに捨てることになりました。日本の次期計画が、アメリ
カの悪いところをコピーするようなものにならないことを祈るばかりです。
25.6. 地球シミュレータ以後 2005年以降
さて、 2002 年に地球シミュレータがでると、さすがに ASCI は何かが間違っ
ていた、ということにアメリカは気が付くことになります。
まあ、実はその少し前から気が付いていたと思われるわけで、この時期にいく
つか新しい研究プログラムが始まり、 ASCI 自体も ASC に名前を変えるわけ
です。
研究プログラムとしては HPCS が重要そうに思われるのですが、これについて
はまた後で議論するとして、2006 年までに新しくはいった大型システムを見
ることにしましょう。一つは Sandia Red Storm です。 Sandia は Pentium
Pro ベースのメッシュネットワーク機 ASCI Red をいれたところであり、 Red
Storm はその後継です。しかし、 ASCI Red は Intel SSD (Scientific
Systems Division) が作ったのに対して、Red Storm は新生 Cray がやりまし
た。
Cray については Cray Research, Cray Computer についてすでに触れました
が、XMP 系列をやっていた CRI が 1993 年に T3D をアナウンスします。これ
は、当時最速の RISC マイクロプロセッサであった DEC Alpha 21064 をベー
スにした超並列機ですが、非常に高速な 3 次元メッシュネットワークと高密
度な実装で、 CM-5 等を押しのけて超並列機のマーケットをほぼ支配します。
さらに 21164 ベースの T3E/600 が続き、これは 21164 チップのクロックが
300MHz から最終的には 600MHz まで上がったことにあわせて T3E/1200 まで
次々に性能向上版がアナウンスされることになり、5-10年に一度しか新製品が
でなかったベクトルプロセッサとは違う世界のもの、という印象を与えました。
ところが、1996年に CRI は経営が成り立たなくなりシリコングラフィッ
クス(SGI)に身売りします。SGI は MIPS ベースのグラフィックスワークステー
ションから出発した会社ですが、この頃は分散共有メモリシステムによる
Origin という大規模システムに力をいれていました。 T3x の製品系列は直接
Origin 系列と競合するわけで、整理されてしまうことになります。
MIPS は、 Stanford RISC チップの直系である正統派 RISC プロセッサですが、
R10K になってほぼ開発がストップします。1996 年段階では H1, H2 といった
ものがロードマップに存在していたのですが、結局 2003 年に Intel Itanium
ベースの Altix システムの出荷を開始するまで、 R10K のクロック速度をあ
げただけの R12K, 14K, 16K といったプロセッサで製品を構築することになり
ました。これは、結局開発費に見合った売り上げが期待できなくなったため、
ということはあると思います。これについても次章でまた触れることにします。
SGI はそのようなわけでスーパーコンピューター市場で有効な製品戦略を構成
できず、 2000年には Cray 部門を Tera Computer に売却します。
Tera Computer は Burton Smith が率いる、当時は Tera MTA というものを開
発していたはずの会社です。 Burton Smith はこの業界では結構古い人で、
1970 年代に Denelcor HEP という非常に複雑な仕掛けの並列計算機を開発し
ていました。 あまりに複雑なのでここでは詳しい説明はしませんが、それで
も 1982 年には実際にマシンが完成し、 4 プロセッサ並列で 40Mflops の理
論ピーク性能をもったようです。これは 8台製造され、少なくとも5箇所に納
入されています。但し、この性能では Cray や、その安いコピーと勝負になら
ないわけで、 1985 年に Denelcor は倒産します。これでこんな計算機はおし
まいかと思うと何故かそうではなく、 1988 年に Smith は Tera Computer を
設立します。 で、ずーっと Tera MTA という、 HEP の発展版のような機械を
開発していました。 1998年には2プロセッサのシステムを San Diego
Supercomputer Center に納入したようです。これは、1プロセッサあたり
900Mflops というもので、この時点で DEC Alpha とかに比べてどのような意
味で競争力があるのか疑わしいものでしたが、Tera は開発資金を調達するこ
とに成功し続けてきました。これがどのようにして可能であったのかは私には
良く理解できていません。
HEP にしても、 Tera MTA にしても大きなセールスポイントはシーケンシャル
な Fortran プログラムからほぼ自動的に並列性を検出して実行でき、プログ
ラムの書き換えが必要ない、ということでした。 これはまあ研究費を取りや
すいテーマですが、実際にそれが売り物の製品がマーケットで大きなシェアを
とったことはスーパーコンピューターの歴史の中で一度もありません。これは
なかなか興味深いことで、歴史的には Cray-1 と Star-100, Cyber の比較で
見たように、それまでの世代よりも使いにくくなると、多少性能が上がっても
使いやすい(今までと同じように使える)ものに負けるのですが、今までよりも
使いやすい、というのが売りのものは性能が悪ければ決して売れたことはあり
ません。
これだけなら、時間がたってもスーパーコンピューターは使いやすくも使いに
くくもならないのですが、よろしくないことに、圧倒的に性能が上がれば使い
にくくてもそちらが売れる、というのは歴史が証明しています。つまり、時間
がたつと、スーパーコンピューターは必ず性能はいいけど使いにくいほうに進
化する、ということになります。まあ、どうやっても性能がでないものは売れ
ることはないわけですが。
話がそれました。 Cray と Tera です。 2000 年に Cray を買収すると、
Tera はただちに社名を Cray Inc. に変更します。これにより、アメリカにお
けるスーパーコンピューター開発の正統である、という地位を確立しました。
ほぼ同時期に T3x の後継といえる Sandia Red Storm の開発契約を得たわけ
です。 SGI 傘下では開発できなかったものが Tera にいって可能になったわ
けで、これは極めて重要な結果といってよいと思います。
Cray は開発が遅れたものの、 2005年には 1万プロセッサ、 40Tflops のシス
テムを稼働させます。これは Cray XT3 として商品化され、かなり順調に売れ
ているようです。
もうひとつ重要なものは、 IBM BlueGene プロジェクトです。これは元々
1999 年頃に始まったもので、地球シミュレータとは何の関係もありません。
タンパク質の構造・機能のシミュレーションはこれから非常に重要なものになっ
ていく、ということはしばらく以前からはっきりしています。私達がやってい
る GRAPE も、理化学研究所で発展した MD-GRAPE シリーズはタンパク質シミュ
レーションが1つの目標です。 IBM でも、それをターゲットとして BlueGene
というプロジェクトを始めました。
余談になりますが、 IBM 社内で大がかりに始まった研究プロジェクトで、順
調に進んだものはそれほど多くはありません。スーパーコンピューター関連で
は既にでてきた 7030, 360/195 と失敗作を無理矢理商品化したものから、
ACS のように中止になったもの等があり、研究プロジェクトでは無数にいろん
なものがあります。
BlueGene も初期は失敗のほうに分類される運命と思わせるものでした。 1 チッ
プに32個のプロセッサ、自己修復するソフトウェア、等ととても現実にできる
とは思えない目標が掲げられていたからです。
2002年になって、この BlueGene から公式に方向転換したとはいっていないの
ですが、「より近い目標」として BlueGene/L (L は Liteの略) という計画が
スタートしました。 これは、コロンビア大学のグループが 格子QCD 計算用に
開発していた計算機 QCDOC に、
-
製造プロセスを 180nm から 130 nm にシュリンク
-
プロセッサを1から2に増やす
-
プロセッサの浮動小数点演算能力もクロック当り積和演算1つから2つに増やす
-
ネットワークは 4(+2) 次元から 3次元に単純化、その代わり放送等のため
の専用ネットワークを追加。またルータも多少洗練されたものに改良
という程度の変更をして、 BlueGene という名前をつけた、という感じのもの
です。 IBM は QCDOC より BlueGene/L に力をいれたので、 BlueGene/L は順
調に開発が進み、また LLNL に 360Tflops のシステムを納入する契約も取り
付けることができて、 2004 年になってついに地球シミュレータが2年にわたっ
て守ってきた Top 500 首位の座を奪取しました。この時はまだ全体の 1/4し
かできていなかったのですが、現在は全体が完成して Linpack 280Tflops を
実現しています。
BG/L のお値段は 1 億円当り 3-4 Tflops 程度と想像されます。これに対して
Cray XT3 は1ノード100万前後ですが、今だと 2.4 GHz 2 コアとかをつけられ
ますからほぼ 10 Gflops、1億円あたり 1 Tflops が実現できます。こうなる
と、差は結構小さいのでアプリケーションが決まっててそれが BG/L で走ると
わかっているケース以外では Cray XT3 のほうが、ということになるでしょう。
Cray はベクトル機も実はまだ作っていますが、次はすでにない模様です。
現在進んでいる日本の京速計算機プロジェクトは、これらのアメリカの新世代
のシステムに対して ASCI マシンに地球シミュレータが示したような優位性を
実現することが望まれているわけで、これは並大抵のことではありません。