goo blog サービス終了のお知らせ 

路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

Closures and the JVM・・・複雑な

2009-02-13 09:27:40 | Birds-Of-Feather
記事「Language Parity: Closures and the JVM」
http://www.infoq.com/presentations/gafter-jvm-closures
を見て、ちょっとため息。

このプレゼンの骨子は、JVMがクロージャやキーワードパラメタといった、Java言語以外のプログラミング言語でよく使われている機能を「ネイティブに」サポートすれば、JVMで動くプログラミング言語の相互利用がやりやすくなる、というものです。

・・・が、プレゼンの背景にはでっかく「Microsoft」。

演者のNeal Gafterさんは、JVMでクロージャをサポートする作業を行っていたのですが、去年MSに移ったんだそうです。Java 7の趨勢を見れば、その気持ちも理解できるような。

でも、このプレゼンはJVMオンリーで、DLRのDの字も出てきません。こういう人を追い出しちゃうコミュニティって、どうもなあ。

Re: BOF: MSもScalaの方向性に気がついた様子

2008-12-13 01:22:43 | Birds-Of-Feather
2008/10/23のエントリのフォローアップです。

記事「It's Official: Visual Studio 2010 Will Ship with F#」
http://www.infoq.com/news/2008/12/FSharp-Release
によると、

F#が、正式にVS2010の一部として配布されるようです。

(今までは、IronPythonのように、Visual Studioとは別個に、単独で配布されていました。)

なるほど、関数型プログラミングスタイルがどーのこーの、と言ってたのは、これを意味してたのか・・・

.Netの上に作られた言語だから、F#で書いたライブラリをC#から呼び出すとかも、問題なくできるだろうし。

C#に関数型プログラミングの機能を入れるよりは、いい選択肢かも。

(2008/12/17 追記)
記事「Erlang Style Concurrency for .NET Applications Part 1 - CCR」
http://www.infoq.com/news/2008/12/CCR
によると、

Coordination Currency Runtimeなるものが提供されているんだそうです。
Erlangのアクターモデルに倣って(?アクターモデルは勉強してないのでよくわかかりませんが)、メッセージを投げるとタスクを実行してくれるポートを用意してるんだそうです。

ロボティクス部門が作った、というのが現実味がありますね・・・

VC++ PPL, DirectX演算シェーダー, Accelerator Project

2008-12-03 21:56:11 | Birds-Of-Feather
うぇー。

MSから並列プログラミングに関するライブラリが3種類も出てました。いつの間にか。

Parallel Pattern LibraryはC++から利用できるライブラリで、C++0xのlambdaを最大限利用したparallel_for(_each)とか、もっと粗粒度のものやらを備えてます。GPUではなくてCPU向け(多分。今のところは)。

下の参考であげている1つ目のやつを見ると、VS 2010のへんてこりんな見慣れないツリー状のコールグラフが、PPLを活用したプログラムでは必須だというのがよくわかります。

DirectX Compute Sharederはその名の通り、DirectXの仕掛けを通じてGPUに計算させるやつ。サンプルコードを見てみると、DirectXらしく、いろいろと儀式めいた呼び出しが必要。

てゆーか、これだったらCUDA使ってもそんなに変わらんのじゃなかろうか。

3つ目は、記事「[Gamefest 08#07]DirectX 11でデータ並列コンピューティングをサポートする演算シェーダとは」
http://www.4gamer.net/games/033/G003329/20080908021/
を読んで知ったのですが、

Accelerator Projectは、Microsoft Researchで公開されているもので、.Net上の言語(サンプルにはC#とVBのソースがありました)で、並列計算用の配列やらマトリックスやらを提供しています。それらにデータを格納して、あとは普通にそれらのデータ間で計算するようなコードを書けば、勝手に並列化してくれるらしい。

すごい。野心的。

とはいえ、GPUにやってもらおうと思ったら、現状ではDirectXしかなさそうな感じだし。MS Researchは純粋に研究をやっていて、MSの商用開発とはくっついてないという話だから、Accelarator ProjectがMSのプロダクトになるのはそうとう先の話だろうし。そもそもなるかどうかさえわからないし。

将来的には、PPLはGPUに対応してくれると期待していいんでしょうか? > MS様。

参考:
http://channel9.msdn.com/pdc2008/TL25/
http://www.gamedev.net/community/forums/topic.asp?topic_id=516043
http://research.microsoft.com/Research/downloads/Details/25e1bea3-142e-4694-bde5-f0d44f9d8709/Details.aspx

BOF: 謎のPyPy

2008-11-10 21:58:54 | Birds-Of-Feather
PyPyというものを試してみた。

プリビルトバイナリというのが転がっていると知ったので。
http://codespeak.net/pypy/dist/pypy/doc/download.html

pypy-c(pypyでCにコンパイルされたCPythonのインタプリタ?)を起動して、

from test import pystone
pystone.main()

とやると、
Pystone(1.1) time for 50000 passes = 7.20778e-005
This machine benchmarks at 6.93694e+008 pystones/second
とかでる。

素のCPython 2.6だと、
Pystone(1.1) time for 50000 passes = 0.570637
This machine benchmarks at 87621.4 pystones/second
なので、

pypyの方が8×10^8くらい速い計算に。

本当ならすごいけど・・・

BOF: Windows 7はやはりMinWin(ベース)だった

2008-11-05 18:20:54 | Birds-Of-Feather
記事「Windows 7 MinWin (the Core)」
http://news.softpedia.com/news/Windows-7-MinWin-the-Core-97159.shtml
より。

Windows 7(すなわち6.1)はVista(すなわち6)のマイナーバージョンアップですが、同時に、MinWinベースでもあるようです。

なんじゃそりゃ?という感じですが・・・

どうも、手品のタネは「MinWinは、Windowsのカーネルから、いろいろ取り除いて作ったもの」というところにあるようで。

つまり、カーネルのソースの関数を依存関係(コールグラフ)をたどって階層を作り(下の階層の関数は上の階層の関数を呼び出さない)、一番下の階層をMinWinとしたそうです。

その結果、MinWinは、最小の、スタンドアロンで実行できる、ブートできる、利用可能なもの、となったそうです。

Windows 7のコア=MinWin、というわけですね。

そういわれれば納得いくような。

(追記 2008/11/15)
記事「Windows 7 – 20 Features to Make Users Forget Vista SP1/SP2 and XP SP3
Milestone 3 Pre-Beta Build 6801 and Build 6801+」
http://news.softpedia.com/news/Windows-7-20-Features-to-Make-Users-Forget-Vista-SP1-SP2-and-XP-SP3-97979.shtml
より。

この記事にも、「3. MinWin – Windows 7 does not come with a new kernel, (中略) but what it does come with is an isolated core. 」とありますね。


Windows 7、デジャヴ

2008-10-29 11:18:19 | Birds-Of-Feather
記事「A first look at the Windows 7 PDC release」
http://content.zdnet.com/2346-12354_22-244222.html
によると、
Windows 7のタスクバーが、OS Xのドックみたいになってるのがわかります。

今(もっぱらウェブをだらだら見るのに)使ってるMacBookには「Start Menu」
http://www.crystalidea.com/freeware
というのをインストールしているのですが、

ぱっと見で、左端がファインダー(OSX + Start Menu)かスタートメニュー(Windows 7)かくらいの違いしかありません。

これでマルチタッチも入るとなると・・・

BOF: MSもScalaの方向性に気がついた様子

2008-10-23 15:48:32 | Birds-Of-Feather
Java 6 update 10を調べているうちに、

Shalshcolonさん?の
「Anders HejlsbergとGuy Steeleが並列性から言語設計を語る 」
経由で、

Channel9「Anders Hejlsberg and Guy Steele: Concurrency and Language Design」
http://channel9.msdn.com/posts/Charles/Anders-Hejlsberg-and-Guy-Steele-Concurrency-and-Language-Design/

を発見。

C#のアーキテクトのAnders Hejlsbergさんが

・関数型スタイルの利点は(副作用がないことによる)自動的な並列化だ、
・徐々に関数型スタイルをデフォルトにしていく、
・関数型スタイルとのハイブリッドが望ましい、極端に関数型になることはない、なぜなら、画面に何かを表示するといったことは副作用として行われるのだから、

などと言ってます(私が聞き違えてない限り)。

その割には、MSから出てくるParallel Extensionsとかいうのはアレな感じですが・・・。まあ、これから出てくるものを楽しみにしててね、ということでしょうか。

(2008/10/29 追記)
Msdn Magagineの2008年10月号
http://msdn.microsoft.com/ja-jp/magazine/default.aspx
に、Parallel Extensions to .NETと、Visual Studio 2010の記事がありました。

Parallel Extensionsには特に関数型スタイル向けの機能はないようです。

が、VS 2010にはスタックフレームをツリーとして表示したり、マルチスレッド向けのプロファイリングが導入されていたりと、かなり面白そう。

「on-premise」って何

2008-10-20 21:34:42 | Birds-Of-Feather
ニュースをざっくり読んでいたら、「オンプレミス」なる語が。

何「オンプレミス」って、と思って調べました。

今日時点のen.wikipedia.orgによると、

「on-premise software」とは、同じ建物の中にあるコンピュータにインストールされたソフトのことで、反対語の「off-premises software」とはSaaSかクラウドのこと、だそうです。

別のサイトでは、on-premiseの対義語としてon-demandが使われてるし。

今までのソフトは「オタク」です、私は違います、みたいな。

あー、適当すぎ。

こんなことだからソフトウェア屋は(ry

(2008/10/28 追記)
PDC 2008のキーノートで、レイ・オジーさんも、「オンプレミス」って言ってますね。あちゃー。

ついでに、「Windows Azure」が一瞬「Windows Agile」って聞こえてぎょっとしました。

OpenCLはC99ベースだったか

2008-10-07 17:27:09 | Birds-Of-Feather
Sigraph 2008のプレゼンがなんとなーくアンテナに引っかかった。

「OpenCL Parallel Computing on the GPU and CPU」
http://s08.idav.ucdavis.edu/munshi-opencl.pdf

CUDAとも似てるけど(__private、__local、__constant、__globalがあったり)、C99ベースなのだそう。

あー、やっぱり勉強しとかないと。

todoが膨れあがるなあ。

政治主導のオープンソースといったらその方面からお叱りをうけるか

2008-09-24 02:33:44 | Birds-Of-Feather
なんというか。

記事「「IT製品の機密開示せよ」…中国が外国企業に要求へ」
http://www.yomiuri.co.jp/net/news/20080919nt07.htm
より。

国内でも読売新聞だけが報じていて、外国の新聞社も伝聞で「読売新聞によると・・・」。ちょっと異様です。

それはさておき、この記事の内容が本当だとして。

「ソースコードをみせないと輸入も生産もさせません」ということになれば、
(1) ハードウェアやネットに機能を肩代わりさせる、あるいは、
(2) 機能を一部省略したものにする
のどちらかになるのでしょうね。

これで思い出されるのは、兵器の輸出の例。

どこぞの国が、外国に戦闘機やら潜水艦やらを輸出するときは、秘密にしておきたいデータやソフトを抜いたバージョンを作って輸出する、というアレです。

こんなことだと、PS3みたいな軍事転用が可能なハードウェアのみならず、フェリカやコピー器みたいな、どうみても民生品なものも輸出規制の対象になってしまうのでしょうね。

めんどくさい世の中になってきたなあ・・・