YAPC::Asia Tokyo 2013 ランチセッション

Post on 31-May-2015

1.247 views 2 download

description

YAPC::Asia Tokyo 2013 のランチセッションで使った資料に、当日口頭で話した内容や、話そうと思って話せなかった内容を追加したものです。

Transcript of YAPC::Asia Tokyo 2013 ランチセッション

自己紹介

佐々木と申します@ksasakims

マイクロソフトの方から来ました

担当領域

仮想化(に手を貸そうか?)

Hyper-V ってご存知ですか…

http://slidesha.re/18Qyzt9 http://slidesha.re/15kMnMg http://slidesha.re/1ahhfkj

http://slidesha.re/14yvbWn

HPC(High Performance Computing)

TSUBAME2 で TOP500 チャレンジもう3年前の話なのでアレですが…

YAPC::Asia Tokyo 2010 は東工大で開催されたそうですね! (http://yapcasia.org/2010/)

私ちょうどその時 GSIC で TSUBAME 2.0 の TOP500 チャレンジ (の雑用係) をしてました。

当時の TSUBAME 2.0 は、Linux と Windows のデュアルブート構成になっていて、両方で HPL ベンチマークを

実行し、「結果の良かったほうを TOP500 にサブミットする!という熱い戦いが繰り広げられていたのです。

GotoBLAS 等で有名な後藤和茂さん (実は去年までMSに!) を擁する MS チームはかなり良いスコアを

出していたのですが、最後の Big Run が原因不明のエラーのため完走できず、惜しくも TOP500 サブミットは

なりませんでした。

しかし、 Windows クラスタとして初のペタフロップス越えとなる 1.127 PFLOPS を記録したのです。

そしてクラウド(use Azure or die $!)

http://www.windowsazure.com/ja-jp/

あるいはマイクロソフト

じゃない系

UNIX / Windows相互運用

Hadoop on Windows(HDInsight)

Microsoft が Hadoop?

http://www.slideshare.net/SaSakiKuninobu/hd-insight-ksasaki

そしてPerl好き

空気読んでくれるし

my @words = split /¥s/, "There is more than one way to do it.";

my @words2 = @words; # @words2 は @words がコピーされる。

my $count = @words; # $count に @words の要素数が入る。

say "@words2";

say "$count";

C:¥work>perl t.pl

There is more than one way to do it.

9

正規表現が強力だし

¥d, ¥D, ¥s, ¥S, ¥w, ¥W みたいな文字クラスや、

なるべく短くマッチする *?, +? とか、

先読み、後読みの言明 (?=PATTERN), (?<=PATTERN) 等など、

Java や C# でも使えますけど、元はと言えば Perl 5 の拡張正規表現ですよね。

『もうひとつは、もうこれ以上正規表現

を拡張しないで欲しいということです。

私個人はPerlの拡張正規表現に追随するこ

とに大変苦労しました。pcreの開発メン

バもきっとそう思っていることでしょ

う。;-)』

http://www.ibm.com/developerworks/jp/li

nux/library/j_l-ruby_qa/

正規表現が「ライブラリとして」実現されている言語だと、パターンを

文字列で記述して実行時にコンパイルしなきゃいけません。 (C#もそう)

Regex re = new Regex(@“^¥s*(¥S+)¥s*=¥s*(¥S+)”);

などと書いて、毎回コンパイルするのはヤだからスタック変数じゃなくて

クラス変数にしようか…とか考えてるとメンドーになってきて、Perl を書く

ときほど正規表現を使わなくなっちゃいます。

Java の ”Hello, world!” が String クラスのインスタンスとして

「コンパイラによって」解釈されるのと同じレベルで、Perl では正規表現が

一級市民。だから気楽になんでも正規表現で処理できますよね。

オブジェクト指向もPerlで覚えました

配列でもハッシュでも、既存のデータ構造を “bless” したらそれがクラスになる!

ただの変数が「洗礼」受けるとクラスになるんだと大変すんなり理解しました。

「メソッド」はただのサブルーチンで、第1引数に bless されたオブジェクトが渡されくる

my $this = shift;

とか毎回書くってどうなの? わかりやすすぎるだろ。(dis ってない)

親クラスの名前は配列 @ISA に入ってるとか。

これまた率直すぎるだろ。(dis ってない)

base.pm って 5.004_04 からあったんですね。すみません知りませんでした…

そういえば最近思うんですけど

{

KEY1 => "値その1",

KEY2 => "値その2", # コメントもかけるし。

KEY3 => ["複数の", "値も", "簡単"],

KEY4 => {

SUBKEY1 => "ネストした",

SUBKEY2 => "項目も",

SUBKEY3 => "自然に表現",

},

KEY5 => <<"EOM"

ヒアドキュメントもバッチリだから、

長い文も書きやすくて便利ですね。

EOM

};

設定ファイルのパーサを自分で書く必要なし。

「system (“rm –rf /bin”)」とかイタズラ書きを

されても Safe が守ってくれるから大丈夫。

読み込んだハッシュを bless してオブジェクトに

しても面白いかもね?

Data::Dumper の出力をちょっと整形すれば OK.

これまた手間いらず。

「Perl として解釈できる形でデータ構造を記述する」

この方法、便利で気に入ってました。

近頃JSON JSON

言いますけど

「言語としてそのまま解釈できる形でデータ構造を

記述する」ってのは

わりと普通ですよねPerl 圏では

“PON”って名前つけておくべきでしたね!

TMTOWTDI なブログ Windows Azure や HPC のことを

主に書いています。

ぜんぜん Perl のこと書いてませんが、

タイトルだけ Perl のスローガンを

パクりましたすみません。

「マイクロソフトで生きていくにも

色々な方法がある」ぐらいのつもりなので

す。

ここから社畜コンテキスト

Windows Azure

SDK 1.1 SDK 1.3 SDK 1.5 SDK 1.7

国内採用事例宣伝広告

既存システムのマイグレーション

教育機関

ソーシャル

出版

ハイブリッドクラウドサービス

スマート デバイス &センサー連携

オンライン ゲーム

官公庁・地方自治体住民サービス

交通機関

人材/求人求職

メディア &エンターテイメント

事例サイト www.windowsazure.com/ja-jp/community/evidence

日本リージョンができます!

サブリージョン内に3重のレプリカを配置

ストレージを地理的に冗長化

クラウド サービス

仮想マシン ( IaaS )

Windows Server 2012

Start Simple

無料で始めて簡単拡張

数秒で準備が完了

ビルトインの監視機能

Go LiveCode Smart

Start Windows Azure

http://WindowsAzure.com

30 日 無料評価版開発者向け情報

Web 開発企業

月 375 時間まで

最大 3 年間

無償

スタートアップ企業

月 1,500 時間まで

まとめ

クラウド移行を可能にするシナリオを大幅に拡大

より多くのお客様のクラウド移行を支援

ハイブリッド クラウド環境の構築がより容易に

特報

近日公開 HPC インスタンス

種別 コア数 メモリ容量 ネットワーク 1

A8 (仮称) 8 56 GB Xeon E5-2670

2.6 GHz

10 Gbpsイーサネット

40 Gbps

Infiniband

(RDMA)A9 (仮称) 16 112 GB

151.3 TFLOPS (効率 90.2%)で165位

2013 年 6 月版では 241 位 (性能は同じ)

504ノード, 8064コアで実施

http://www.top500.org/site/50454

ところで

最近のマイクロソフト

OSS にすり寄ってとの相互運用に

積極的

PHP デベロッパーセンター

Python デベロッパーセンター

Node.js デベロッパーセンター…

Perl は?

Perl はどこなの?

CPAN でもレアもの・・・

しかし、日本発のモジュールも!

まだまだPerl on Azure

競技人口少な目…

今始めればオリンピックも夢じゃない!

REST API 叩きまくり

私も作ります!

__END__