タグ別アーカイブ: プロセッサ

【仮想化道場】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.

Linuxカーネル4.0リリース、ライブカーネルパッチを導入 | SourceForge.JP Magazine

2月中旬に公開されたLinuxカーネル3.19に続くリリースとなる。Linuxカーネル3.19の公開後、Torvalds氏はGoogle+にて次期版の名称を「Linux 3.20」とするか、以前構想を明かした通りに「4.0」とするかについてオンライン投票の形で意見を募った。投票では少しの差(56%対44%)で「4.0」が上回っており、その後2月末に初のリリース候補版を「Linux 4.0」として公開した。今回のバージョン番号の変更については「数字が大きくなることを避けること」を目的としており、Torvalds氏も「4.0の前提は、新しい実験的な機能よりも安定版リリース」でありこれに沿うものと記している。

大きな変更点として、再起動をせずにカーネルにパッチを適用できる基礎的な仕組みが導入された。米Red Hatのライブパッチツール「kpatch」とSUSEのライブパッチツール「kGraft」をサポートする。一方でremap_file_pages()システムコールは削除された。この機能のエミュレーションは残るため、アプリケーションの動作に影響がでることはないという。

ファイルシステム側ではパラレルNFS(pNFS)ブロックサーバーのサポートが加わり、btrfsでのRAID 5/6も改善した。また、ubifsファイルシステムでマルチキューブロックレイヤーをサポートし、準仮想化のvirtioはバージョン1.0となった。ext4ではlazytimeファイるシステムオプションのマージも行われており、ファイルシステムに多数のI/Oを加えることなく正確なアクセス時間を効率的に追跡できるとしている。overlayFSでは複数のリードオンリーレイヤーのサポートが加わっている。

このほかにも、perfツールの改善など多数の細かな機能強化が施された。IBM s/390 z13プロセッサなど、新しいプロセッサ、ハードウェアのサポートも加わっている。

引用元: Linuxカーネル4.0リリース、ライブカーネルパッチを導入 | SourceForge.JP Magazine.

Chrome で高速にページを読み込む新しい技術のご紹介 – Google Developer Japan Blog

コード キャッシングはもうひとつの新たな技術で、特に同じページを何度も表示するときにページが迅速に読み込まれるようになります。通常、ページの JavaScript はページを表示するたびに V8 エンジンによってコンパイルされ、プロセッサが認識できるインストラクションに変換されますが、このコンパイル済みのコードは、コンパイル実行時のマシンの状況やコンテキストによって大きく左右されるため、ユーザーがそのページから移動すると保持されません。Chrome 42 では、このコンパイル済みコードのローカルコピーを保持する拡張技術を採用することで、ユーザーがそのページに戻ってきたときにパースをダウンロードしてコンパイルする手順をすべて省略できるようになります。これによってすべてのページでコンパイル時間の 40% を削減し、モバイル端末において貴重なバッテリーの消費量を減らすことができます。

引用元: Chrome で高速にページを読み込む新しい技術のご紹介 – Google Developer Japan Blog.

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

今回の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の講演者も元々は半導体の回路設計者でした。

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

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

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

ネット広告のクリック数のうち88~98%はボットによるものだと判明 – GIGAZINE

アドリアン・ニール氏とサンダー・コーウェンホーヴェン氏の調査した結果、Google・Yahoo!・LinkedIn・Facebookの広告をクリックしていたボットには複数の種類が存在することが判明しています。ボットは大まかに分けると6種類存在したそうで、それらは以下の通り。

◆Basic(基本型)

広告プラットフォーム上にて、広告キャンペーンなどをターゲットに走る「指定されたURL」にのみHTTP GETリクエストを送るボット。

◆Enhanced(改良型)

特定の広告のためのHTTP GETリクエストを広告サーバーから受け、AJAXを使用してウェブブラウザのロードイベントを記録します。これが標準のロードイベントとは異なる場合、HTTP GETリクエストを送っているのはEnhanced型のボットとのこと。

◆Highly Enhanced(高度改良型)

クライアント側のコード実行が既知のコードと一致しない場合は、高度なJavaScriptプロセッサーメトリクスを使用するボット。

◆Advanced(進化型)

人間の基本的な動作を真似るもの。

◆Highly Advanced(高度進化型)

人の動作を真似るボットは、ロードしたページを数秒間表示したままにしたり、マウスやキーボードを使用したり、ページを上下にスクロールしたりします。しかし、ボットが行うような擬似的な無作為性はクラスター分析で検知可能とのこと。

◆Humanoid(ヒト型ボット)

ベジェ曲線やB-スプライン曲線などを使用して高度に人間の行動を真似るボット。

そして7日間の調査結果は以下の通り。各広告ネットワーク上での広告クリックは88~98%がボットによるもので、特にGoogleの広告ネットワーク上では98%がボットによるクリックです。また、Yahoo!やLinkedInの広告ネットワーク上には基本型のボットが存在しない、というのも大きなポイント。

引用元: ネット広告のクリック数のうち88~98%はボットによるものだと判明 – GIGAZINE.

CPUに適度に間違わせることで節電する技術 – PC Watch

一般に、トランジスタはプロセスルールが縮小すると信頼性が下がる。電圧を上げると、信頼性は上がるが、同時に消費電力も上がってしまう。現在のプロセッサは、消費電力の壁に当たっており、いかにして効率を上げるかが求められている。 そういった事情の中、近年議論されているのが、“概算的演算”を行なうコンピュータシステムだ。例えば、映像や画像処理において、1ピクセル色が本来と違うといった、若干の出力エラーがあっても、おおよそ合っていれば、ユーザーはそれを許容できる場合がある。これを逆手に取り、CPUやメモリなどのチップの一部の電圧を下げ、その部分で明示的に演算をさせることで、演算の正確さや信頼性をある程度犠牲にしつつも、消費電力を減らすというのが、概算的なコンピュータシステムのコンセプトだ。 このシステムで問題になるのが、いかにして許容できる範囲での“非信頼性”を得るかという点だ。今回MITが考案した「Chisel」というシステムでは、コードのどの部分にエラーを許容させるかをプログラマーが指定すると、どの命令を信頼できないハードウェアに割り当てるかを自動的に決定できる。応用範囲は、画像処理、金融分析アルゴリズムなど限定的ではあるが、消費電力%9

引用元: CPUに適度に間違わせることで節電する技術 – PC Watch.

ニュース – インテルがFPGA搭載プロセッサの投入を表明、MSの要望など反映か:ITpro

米インテルが、ついにFPGAとx86プロセッサを組み合わせる手段に打って出る。プログラマブルなアクセラレータであるFPGAと、同社のサーバー用プロセッサ「Xeon」を、一つのパッケージに収めた製品を検討している。

2014年6月18~19日に米国で開催されたイベント「Gigaom Structure 2014」で、同社Data Center GroupのSVP/General ManagerのDiane Bryant氏が講演し、明らかにした。

今回のプロセッサは、データセンターに向けたものである。インテルは近年、大規模なデータセンターを持つクラウド事業者向けにカスタム化したプロセッサを提供している。2013年にはその数は15種類、2014年には30種類になるという。

今回のプロセッサは、こうしたカスタム化のニーズおよび特定のワークロードを高速化したいとのニーズを狙ったものと思われる。Bryant氏は「ソフトウエア・デファインドなデータセンターを実現するために、こうした技術が必要」と語っている。

つい数日前には、米マイクロソフトが2015年初頭に自社のデータセンターに1600個ほどのFPGAを投入する計画を発表している(関連記事:マイクロソフトがFPGAをデータセンターに投入、Bing検索を高速化へ)。今回のインテルのプロセッサも、こうしたクラウド事業者の動きを踏まえたものと言えそうだ。

引用元: ニュース – インテルがFPGA搭載プロセッサの投入を表明、MSの要望など反映か:ITpro.

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

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

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

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

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

パワーマネジメントに関する設定はオフにする

UEFIやBIOSにはパワーマネジメント設定がありますが、これらを無効にするとプロセッサなどが無条件で定格クロックで走り続けます。ピーク性能を高めたり瞬発力を上げるためにはパワーマネジメントはオフにします。当然ながらベースの消費電力やファンの騒音は増えますが、かわりにいくらかピーク性能の向上が見込めます。

Hyper Threading はレイテンシーとスループットのトレードオフ

Hyper Threadingは、たぶん、コア内でパイプラインを取り合うからなのだと思いますが、レイテンシーの悪化原因になったりします。隣の誰かよりもはやく売り買い注文を出したりしたいような場合にはあえてオフにすることも多いようですが、ただRDBMS等ですと慢性的にプロセッサの処理能力が足りなくなるので、ある程度の犠牲は仕方無いと割り切って有効にしておくのがよいでしょう。

VT-dはレイテンシーを増すので不要な環境ではオフにする

仮想化環境でPCIパススルーなどと呼ばれる機能を提供するための機能がVT-dです。この機能はさりげなくI/Oレイテンシーを増したりするので使う予定が無ければオフにしておきましょう。

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