タグ別アーカイブ: アーキテクチャ

ゲーム内チャットが諜報機関にとって悪夢である理由 – はてな匿名ダイアリー

① 膨大なチャネル

会話経路がゲームの数だけ、星の数ほどある。NW的にはPSNを利用していても、プロトコルや暗号化方法はゲーム毎に異なるのでPSNの根っこで監視をしても結局各ゲーム毎に解析方法を作らなければならない。『釣天使』とかかわり合いたいと思うほど諜報機関は暇では無いだろう。

そして、ゲームの数はアーキテクチャの数であり、それぞれ異なる方式で情報が伝達されている。あるゲームではメッセージサーバ集中管理でも、また別のゲームではP2P通信だったりする。それらを複合的に扱っている場合もあるだろう。テロリストとは無関係な第三者のゲーム機をホストとして会話が行われ、運営者側では会話ログを一切持っていない、こんなケースはいくらでもあるだろう。

サイバー犯罪対策法はログ保存を事業者に義務づけているが、P2Pアーキテクチャではそもそも事業者との通信自体が行われていない。

引用元: ゲーム内チャットが諜報機関にとって悪夢である理由 – はてな匿名ダイアリー.

Googleが同社のデータセンター内のネットワーキングについてその秘密を(すこしだけ)明かす | TechCrunch Japan

Googleがデータセンター用に独自のハードウェアを作っていることは、よく知られているが、しかし、おそらくあまり知られていないのは、データセンター内部で使うネットワーキングプロトコルも、インターネットの標準プロトコルではなく同社独自のものであることだ。

Googleによると、現在の’Jupiter’と呼ばれるネットワーキングのセットアップは、同社の第五世代のセットアップで、自前のデータセンターの初代に比べると容量は100倍に増えている。現世代の二分割帯域幅(ネットワークを二つの部分に分けたときの両者間の帯域)は、毎秒1ペタバイトだ。言い換えるとそれは、10万台のサーバが互いに10GB/sで対話できる、ということ。

Googleのネットワーキング技術のトップAmin Vahdatによると、全体的なネットワークコントロールスタックは、“従来のルータ中心型のインターネットプロトコルよりもむしろ、Google自身の分散コンピューティングのアーキテクチャと共通している部分が多い”。

彼は、Googleのデータセンターネットワークの設計原則として、次の三点を挙げた:

ネットワークの編成にはClosのトポロジを使用して、小型で安価なスイッチの集合が大きな論理スイッチの性質を備えるようにしている。

データセンター内の数千のスイッチを管理するために中央集権型のソフトウェアコントロールスタックを使い、それらが実質的に一枚の織物のように働くようにしている。

インターネットの標準プロトコルではなく、データセンター用に社内で特製したプロトコルを主に使いたいので、そのためにソフトウェアもハードウェアも内製している。

Facebookが過去に共有した情報などに比べると、それほど詳しくない。数か月後ぐらいには、もっとましな情報を出してほしい。とくに知りたいのは、同社独自のネットワーキングプロトコルの動作仕様だけど、それに関してはちゃんとしたペーパー(技術論文)を発表してほしいね。

引用元: Googleが同社のデータセンター内のネットワーキングについてその秘密を(すこしだけ)明かす | TechCrunch Japan.

【仮想化道場】Haswellアーキテクチャの最上位プロセッサ「Xeon E7 v3」 – クラウド Watch

最も大きいのは、Xeon E5 v3でサポートが見送られたTSX(トランザクショナルメモリ)がXeon E5 E7 v3では正式にサポートされたことだ。

TSXでは、メモリのロック機能とデータベースなどで使われるトランザクショナル機能をハードウェア(命令セット)で実現している。

メモリのロックは、現在読み書きしているメモリをロックして、ほかのプログラムから、作業中にデータを書き換えられることを防ぐ機能だ。

この機能は便利だが、ほかのプログラムからはロックが解除されない限り、他のプログラムはそのメモリの読み書きができないため、他のプログラムはアイドル状態になってしまう。もしプログラムのミスなどでメモリのロックが解除されない場合は、ずっとアイドル状態で待ち続けることになる(デッドロック)。

そこで、データベースなどで使われているトランザクショナル機能と同じような機能をメモリに持ち込んだのが、TSXになる。

TSXでは、メモリロックを行って、メモリの読み書きを制限するのではなく、全てのプログラムを同時に実行させる。

もし、あるメモリ領域のデータを読み込こんで処理を行っているプログラムがある場合に、別のプログラムが同じメモリ領域に別のデータを書き込んだとする。そのときには、メモリに新しいデータを書き込む段階で、読み込んだときのデータと比較して、データが異なっていたら、処理のやり直しを行う。このことをトランザクショナル処理という。

Xeon E7 v3を使えば、トランザクショナル処理プログラミングせず、プロセッサのTSX機能を利用することができる。また、ロック/アンロック機能、トランザクショナル機能をハードウェア(命令セット)で実現するため、性能が向上する。ソフトウェアで、ロック/アンロック機能、トランザクショナル機能をインプリメントするには、膨大なコードが必要になるが、これがいくつかの命令で実現できるなら、アプリケーション自体のコードもシンプルになる。このため、TSX機能をサポートしたインメモリデータベースなどでは、高い性能を出すことができる。

引用元: 【仮想化道場】Haswellアーキテクチャの最上位プロセッサ「Xeon E7 v3」 – クラウド Watch.

【仮想化道場】Haswellアーキテクチャの最上位プロセッサ「Xeon E7 v3」 – クラウド Watch

仮想化においても、Xeon E5 v3と同じくVMCSシャドウイングがサポートされている。この機能では、頻繁に起こるVM Read/VM WriteをVMCSシャドウが中間層としてまとめ、ルートVMMに送ることで、頻繁に起こるVM開始/VM終了の数を劇的に減らす。VM開始/VM終了は、プロセッサから見れば、1つの命令に多くのクロックが費やされるため、これを減らすことで、ハイパーバイザーのパフォーマンスがアップすることになる。

また、ハイパーバイザーが使用するEPT A/Dビットをハードウェアが管理することで、ハイパーバイザーがEPT A/Dビットのトラッキングをする必要がなくなる。これにより、ハイパーバイザーの動作が軽くなる。

引用元: 【仮想化道場】Haswellアーキテクチャの最上位プロセッサ「Xeon E7 v3」 – クラウド Watch.

Google、「DQN」という人工知能を開発、ゼロからゲームをプレイして自力で攻略方法を見つける -INTERNET Watch

米Googleは、深層強化学習(Deep Reinforcement Learning)アルゴリズムを用いた人工知能「DQN」を開発したと発表した。DQNは「deep Q-network」の略で、深層強化学習を通して、人間レベルの制御を可能にする。自力でコンピューターゲームをプレイし、攻略方法を見つけ出すことができるという。

Googleでは、DQNに横スクロールシューティングゲーム「River Raid」やボクシングゲーム「Boxing」、3Dカーレースゲーム「Enduro」といったAtari 2600のゲーム49種類をプレイさせた。同じネットワークアーキテクチャーとチューニングだったにもかかわらず、すべてゼロからプレイすることができたという。

ゲームのプレイ回数に応じてプレイスタイルも洗練され、ブロック崩し「breakout」では、プレイ回数が100~200回の時点ではボールを取りこぼすこともあったが、400回を超えるとうまく跳ね返すことができるようになった。600回を超えると、別の壁を使ってボールをバウンスさせることでブロックを崩す攻略方法を発見した。

プレイの結果、49ゲーム中43ゲームで、これまでの機械学習手法を上回ったほか、29のゲームではプロのゲームテスターと同等か、それを超えるパフォーマンスを見せたという。

引用元: Google、「DQN」という人工知能を開発、ゼロからゲームをプレイして自力で攻略方法を見つける -INTERNET Watch.

グーグルが半導体の設計者を雇う理由 – 竹内研究室の日記

今回のISSCCで目がついた発表は、私たちの研究と方向性は似ていて、SSDやストレージ・クラス・メモリ(MRAM、ReRAM、PRAMなど)といった高速なメモリを活用する新しいコンピュータシステム。

新しいコンピュータシステムの呼び方はいろいろで、例えば、

・三星:In-Storage Computing

・Google:Near-Data Computing

・Marvell:FLC(Final Level Cache)

・IBM:Data Centric Computing

全てに共通するのは、膨大なデータをリアルタイムに扱うためには、データを記憶する高速メモリの近くでデータの処理をする必要があるということ。

In-Storage Computingはストレージの中でアプリケーションを動かしてしまうこと、FLC(Final Level Cache)はメインメモリのバスにSSDを接続すること。

一見、逆の方向の技術に見えますが、データ処理とメモリを近づける、という意味では共通しています。

こういった新しいアーキテクチャに取り組んでいる企業は、上の例を見ても、半導体メモリメーカー(三星)、ITサービス(Google)、プロセッサメーカー(Marvell)、ITシステム(IBM)と様々です。

この世界はいわば、異種格闘技戦になっていることが良くわかると思います。

ビッグデータ、IoTなどの新しいサービスが生まれたタイミングと、SSD、ストレージ・クラス・メモリなどの新しいデバイスが成長してきたタイミングが偶然にも一致したからでしょうね。

まさにデバイスからソフト、サービスまでの最適化が必要になってきているのです。

さて、ではどうやって異分野を融合していくか。様々なスキルを持った専門家を自社に抱えるしかないのでしょう。それだけの体力ある企業が生き残る。

事実、Googleの講演者も元々は半導体の回路設計者でした。

必ずしも全てのパーツの製造を自社で手がける必要は無いけれども、少なくとも全ての技術を融合していく時代になっていくのでしょう。

日本では「垂直統合は悪、水平分業が善」というようなことも聞かれますが、世界は既にその先に行っているのです。

引用元: グーグルが半導体の設計者を雇う理由 – 竹内研究室の日記.

hadoop – Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja – Qiita

なぜBigQueryはこんなインチキ臭いほどに高速なのか。BigQueryは、Cloudera Impara等のいまどきの大規模並列(Massively Parallel Processing/MPP)クエリエンジンや過去のデータウェアハウスマシンと同じくカラム型のデータ分析専用データベースである。しかし、他の多くのカラム型DBとBigQueryとの間には量子的飛躍が存在する。それは、並列度のオーダーだ。BigQueryでは、ひとつひとつのクエリを実行するたびに数百台〜数千台のマシンが同時並列に検索を実行している(←ケタ間違えていません)。文字通り、massivellyな並列処理だ。その上、インデックスは一切作らず、すべてディスクのフルスキャン(テーブルスキャン)で処理する。

1クエリに数千台、すべてフルスキャン。。この2点を初めて聞いた時はしばらく信じられなくて、BigQueryを開発したGoogleエンジニアに2〜3回は確認してしまった。

この恐ろしいまでの並列性には理由がある。Google社内において、「1TBのデータを1秒でフルスキャンするには、いったい何台のディスクドライブを並列に回せばよいのか?」という実験をし、その結果得られた答えが5,000台。それならば、Googleのデータセンターにすでに無数にあるディスクでクエリを並列実行できるカラム型DBを作ってみよう、というのがBigQueryの生まれた発想である。Google、おおざっぱすぎる。

数十程度の並列度のMPPクエリサービスとは、"massively"の意味がまるきり違う。私はつねづね、こういうのが本来の意味でのクラウド(=データや計算をデータセンター全体に薄く広く分散させるアーキテクチャ)なんだなと思う。

引用元: hadoop – Googleの虎の子「BigQuery」をFluentdユーザーが使わない理由がなくなった理由 #gcpja – Qiita.

hasegaw blog: サーバーさんに本気を出してもらうために憶えておきたい設定項目

マルチプロセッサ構成ではPCI Expressバスのスロットに気を付ける

NUMAアーキテクチャのコンピュータではPCI Expressバスの利用時に接続先スロットに注意します。Nehalem以降のサーバでPCIeに何か挿すということは、どいつか特定のプロセッサの端にPCIeデバイスを繋ぐということです。大抵の場合は第1プロセッサに接続するほうがいいようです。OSによりますがデフォルトでは特に、最初のCPUコアで割り込みなどを捌こうとする傾向がありますので、第1プロセッサに繋いでおいたほうが比較的無難です。特に二番目以降のプロセッサにPCIeデバイスを繋いだ場合には、デバイスがいる側でドライバが動いているか等確認しましょう(アフィニティ)。UEFI/BIOSの設定からはかけ離れてきたので割愛します。

引用元: hasegaw blog: サーバーさんに本気を出してもらうために憶えておきたい設定項目.

善悪を判断するロボット、米海軍が開発支援+(2/3ページ) – MSN産経ニュース

例えば、おそらくは近い将来に多数登場するであろう医療ロボットに対して、重傷を負った兵士を最寄りの野戦病院に移送するよう命令したとする。この医療ロボットは移送中に、脚を骨折した別の海兵隊員に出会った。医療ロボットは、立ち止まって手当を施すべきなのだろうか? それとも与えられた任務を遂行し続けるべきなのだろうか?

あるいは、命を救うためには、負傷者に非常な痛みを与える応急処置が必要だとする。ロボットは、命を救うために人間に苦痛を与えることを善だと考えるべきなのだろうか?

こうした仮定の質問に答えるためには、研究チームは、共感の本質に関するさらに多くの問いかけを行って、人間の倫理的能力を構成している本質的な要素を特定する必要がある。人の感情を生み出す根源がわかれば、人間のような倫理的判断が行える人工知能をモデル化する枠組みに取り組めるだろう。

「われわれは、既存の自律型ロボットの実証されたアーキテクチャーに、独自のアルゴリズムと計算メカニズムを統合するつもりだ。拡張されたアーキテクチャーは、ロボットが倫理的判断に基づいて、計画された行動をダイナミックに上書きできるような、柔軟なものになる」とシューツ氏は語る。

引用元: 善悪を判断するロボット、米海軍が開発支援+(2/3ページ) – MSN産経ニュース.

GoogleがサーバをIntelからIBMの「OpenPOWER」陣営に乗換え、Intelにとっては大打撃 – GIGAZINE

Googleが公開した新サーバ用のマザーボードは、IBMが開発したCPU「Power8」を搭載しています。Power8は最大周波数5GHzの12コア(96スレッド)、96MBのL3キャッシュを搭載するCPUで、従来モデルのPower7に対してシングルスレッドパフォーマンスが1.6倍、並列実行可能スレッド数を倍増したもので、2013年8月に発表されていました。GoogleはこのPower8搭載サーバ用マザーボードを、現在開催中のIBM Impact2014で発表するとしています。

これまでGoogleの巨大サーバ群はすべてIntelチップを搭載したもので、IntelにとってGoogleは大量の受注が見込める上顧客でした。GoogleがIntelサーバからIBMサーバに乗り換えることは、その関係が終了することを意味します。乗換に伴ってGoogleはハードウェア・ソフトウェアの両方を刷新する必要があるため、今回の決定はトラブル発生の危険を伴う大きな決断だったと言えます。

このようなリスクを冒してでもGoogleがサーバを乗り換えた理由としてWIREDは、「GoogleはIntelに頼りっきりの状態を継続することの方がはるかにリスクが高いと考えているのではないか」と推察しています。Googleがデータサーバを今後も増強し、さらに新サービスを次々投入していくためには、より高性能なサーバが必要になります。そのために、Intelに依存している今の姿勢を改めてIBMに大量の発注をかけることで「IBMサーバをIntelサーバに対抗できる存在へ育てる」というリスク分散策を採ったのではないか、という見方です。なお、IBMはPOWERマイクロアーキテクチャに基づくオープンな開発環境を促進する団体「OpenPOWER Foundation」を設立し、日立・Micron・Samsungなどの有力なIT企業がこれに参加することで、サーバ関連事業が勢いづいています。

引用元: GoogleがサーバをIntelからIBMの「OpenPOWER」陣営に乗換え、Intelにとっては大打撃 – GIGAZINE.