前回、R言語の中にあって各種サンプルデータセットを提供してくれているdatasetsパッケージに含まれているデータセットをついに舐め終わりました(身についているのかは怪しいケド。)今回からは他のパッケージに含まれているサンプルデータセットを眺めていきたいと思います。最初はbit64パッケージとな。
※「データのお砂場」投稿順Indexはこちら
datasetsパッケージは、サンプルデータセットを専門に集めたパッケージでしたが、各種機能を提供するパッケージの中にもチラホラとサンプルデータセットが含まれているようです。当然、該当のパッケージ機能を動かしてみたりするためのものだと思われます。つまり、サンプルデータセットが何かを調べるだけではなく、まずパッケージ機能が何なのかも調べにゃ分からんということですな。メンドイ。
bit64パッケージ
CRAN(Comprehensive R Archive Network)内のbit64説明ページが以下に。
bit64: A S3 Class for Vectors of 64bit Integers
64ビット幅の整数ベクトル型のクラス(S3形式)のパッケージみたいです。githubのページが以下に。
また使用方法などは、以下にURLを掲げたPDFマニュアル(75ページもある)に詳しいです。
https://cran.r-project.org/web/packages/bit64/bit64.pdf
bit64パッケージの使用開始
RStudioを使わせていただいております。Packageタブからbit64をチェックすれば使用開始できます(依存関係のあるbitなどのパッケージも同時にチェックされます。)
コンソールを見てみると、以下のようにlibraryコマンドが走ります。ずらずらと出力でてきますが、その上の方をみると、標準のパッケージから置き換えられてしまう機能もあるみたいです。
bit64パッケージの使い方、PDF読むのが辛いのでよくわかりません。とりあえず3要素の64ビット幅整数のベクトルを作って、その第1要素に幅広の整数を代入してみます。こんな感じ。
いいんかな~。
benchmark64.data サンプルデータセット
さて、ターゲットのサンプルデータセットは以下のお名前です。
benchmark64.data
これは bit64パッケージ内に、benchmark64というベンチマークを行うための関数が含まれており、その関数を以下の特定のPC上で実行したときに取得したデータセットみたいです。
Lenovo ThinkPad T410 Core i5 560M/2.66GHz/2コア
調べてみると2010年発売のノートPC(Windows 7機)なのでかなり古い機種です。ま、数十年も前のサンプルデータ主体だったdatasetsパッケージに比べればずっと最近のデータとも言えますが。
なお、benchmark64関数は、与えるパラメータによって大きく負荷が変わるみたいです。負荷が軽いと一瞬で終わってしまって計測できないし、負荷が重すぎると時間がかかりすぎることもあるっと。
その辺 helpシステムにお願いすると以下のような感じで説明を取得できます。
まずは生データ
まずは生データを眺めてみます。縦横2次元の数値ベクトルのようです。
行ごとにベンチマーク対象の個別処理名がならび、列毎に実行条件がならんでおるようです。列名をみるとナンタラchacheみたいなお名前ならんでいますが、それらは全て bit64パッケージが提供するデータ構造みたいです。
Examples
上記のHelpファイルを読めば実行結果も見ることができます。まずは生データ。これは上の表と一緒ね。
続いて最初のプロット。Y方向が高速化の倍率(32ビット処理を基準とする。0始まりなのはなんだかな~)で、X方向は表の行にあたるテスト項目。
次のプロットは、Y方向の高速化倍率は変わらず、X方向はテスト条件にしたもの。
Benchmarkしてみる
以前に実施された古いデータを眺めるだけでは面白くないので、手元の実機でもbenchmark64してみました。
i5-1235U 1.3GHz(10コア12スレッド、ターボブースト時3.3GHz/4.4GHz)
以下のような「軽い」(短いベクトル)だと瞬間的に終わってデータが取れません。
benchmark64(nsmall=2^7, nbig=2^13, timefun=function(expr)system.time(expr, gcFirst=FALSE))
以下くらいな「重さ」(長いベクトル)にするとそれなりの時間がかかるので数字が求まります。
benchmark64(nsmall = 2^16, nbig = 2^25, timefun = repeat.time)
結果は出たけれども、bit64素人にはなんだかな~なデータだな。何も言えねえ。
今回のbit64パッケージには上記のbenchmark64.data データセット以外に、以下のデータセットも含まれています。
optimizer64.data
こいつはパスだな。bit64の深いところに突っ込まないと噛みしめることはできなそうです。