ハクソク

世界を動かす技術を、日本語で。

最安のMacBookに関するビッグデータ

概要

  • MacBook Neoのデータベースワークロード性能をClickBenchTPC-DS SF300で検証
  • エントリーモデルながら全ベンチマークを完走し、意外な好成績も確認
  • ローカルSSDの恩恵でクラウドインスタンスより有利な場面も
  • 8GBメモリディスクI/Oが長期的には制約要因
  • クラウド利用や軽いローカル処理なら十分な選択肢

MacBook Neoでのデータベースベンチマーク検証

  • Appleから新発売のMacBook Neoの実力検証
  • Big Data on Your Laptopの観点での適合性評価
  • 店頭で購入し、ClickBenchTPC-DSで実際にベンチマークを実施

ハードウェア仕様

  • EU版は充電器なし、本体とUSB-Cケーブルのみ付属
  • SSD容量(256GBまたは512GB)のみ選択可能、8GBメモリ固定
  • Apple A18 Pro(6コア、iPhone 16 Proと同じSoC)搭載
  • 価格はUS$700/€800(512GBモデル)

ClickBenchベンチマーク

  • ClickBench:43クエリ、集計・フィルタ主体、100M行のワイドテーブル

  • データ容量:Parquet形式14GBCSV形式75GB

  • DuckDB v1.5.0をmacOS向けに移植し、メモリ制限5GBで実行

  • 比較対象:c6a.4xlarge(16vCPU/32GB)、c8g.metal-48xl(192vCPU/384GB)

    • ローカルSSD利用でMacBook Neoがコールドラン最速(全クエリ1分未満で完了)
    • クラウドインスタンスはネットワークストレージがボトルネック
    • ホットランでは大規模クラウドが圧倒的だが、MacBook Neoも中規模クラウドに匹敵
    • CPUスレッド数/メモリ量が大きく劣る中で健闘

TPC-DSベンチマーク

  • TPC-DS:24テーブル、99クエリ、ウィンドウ関数等を含む複雑な構成
  • DuckDB v1.4.4メモリ制限6GBで実行
  • SF100では中央値1.63秒/クエリ総計15.5分で完走
  • SF300ではディスクスワップ多発、一部クエリは極端に時間がかかる(例:クエリ67が51分)
  • それでも**全クエリ完走(79分)**を達成

MacBook Neoは「買い」か?

  • 毎日Big Dataワークロードをローカルで実行する用途には非推奨
    • ディスクI/O性能(1.5GB/s程度)がAir/Proより劣る
    • 8GBメモリも長期的には制約
  • モバイル用途クラウドDBのクライアント端末としては十分
  • DuckDB等の軽量ローカル処理も問題なく対応可能
  • コスト重視で時折ローカルでデータ処理したい場合には良い選択肢

Hackerたちの意見

これはAWSのコンピュートに対する批判でもあるよね。
そうそう、これは大手クラウドの価格がどれだけバカげてるかって話だよ。俺は初代のM1 Maxを持ってるけど、これがあれば一番高いクラウドインスタンス以外は全部ぶっちぎれるよ(そのインスタンスの月額料金が今の市場価値と同じくらいだし!)、少なくとも計算性能ではね。これ、ノートパソコンだよ! ラックに入ってる普通のベアメタルサーバーなら、どんなノートパソコンでも圧倒できる。ほんと驚くべきことだよ。信じられない。帯域幅もひどくて、10000倍のマークアップとか。なのに、クラウドが主流なんだよね。今の開発者の世代、もしくは二世代は、クラウドSaaS以外知らない人が多い。みんながそれにハマっていくのをリアルタイムで見てたよ。
でもAWSはノートパソコンに勝ったの? それにパフォーマンス分析にコストはかからないの? 確かにAWSは高いけど、この特定の記事からどうやってその結論に至ったの? ネットワークディスクがSSDより遅いから? AWSにもローカルストレージ付きのSSDインスタンスがあるよ。
記事はまさに逆のことを言ってるよ。引用: 「これがポイントなんだけど、もし毎日ノートパソコンでビッグデータのワークロードを処理してるなら、MacBook Neoは買わない方がいいかも。」「とはいえ、クラウドでDuckDBを使って、主にノートパソコンをクライアントとして使うなら、これは素晴らしいデバイスだよ。」
ちょっとリンゴとオレンジを比べてる感じだね。AWSはEBSを使ってて、ローカルのインスタンスストレージじゃないから、ネットワーク越しにデータを送るときはローカルのPCIeバスに比べて遅延が桁違いになるよ。それが、重いランダムシークの負荷には大きな要因になると思う。
ローカルのNVMeがあるインスタンス、例えばc8gd.4xlargeでベンチマークを取るべきだったな。
フルリージョンの停電みたいなことがあった後にローカルNVMeの持続性について何か約束してるの? もし単一リージョンクラスターで耐久性のあるコミットができないなら、何かあったときにコミットされたデータを失わずに一時的に利用できないだけじゃダメだよね。それができるなら、データの一部を保存している全ゾーンが完全にブラックアウトしても生き残るって約束されてるWALをストリームする必要があるよ。
c8gdのローカルNVMeは一時的なものだから、毎回データを事前に用意しないといけないけど、こういうベンチマークには実は理想的だよね。EBSのコールドリードアーティファクトを完全に避けられるし。
俺も一台買って「本格的な開発作業」をやってみようかなって思ってる。これがただのハンディキャップのあるマシンじゃないって見せるためにね。俺は複数のiOSアプリを作ったし、M1 MBAをメインのコンピュータにして二つのスタートアップの買収も経験した。ネオはM1 MBAよりもいいよ。30〜45分の4Kレース動画をFCPで編集しても全然問題なかった。
今月、M1 Airをサーバーとして引退させたばかりだよ。あれはかなり優秀なノートパソコンだね。もしNeoがスペック的に同じくらいなら、値段の割にめっちゃいいと思う。
ちょっと古くなってきたけど、2019年のIntelチップ搭載のMacBook Proを使ってるよ。16GBのメモリで、まだClaude CodeやCodexを使って複数のターミナルセッションを同時に処理できてる。Xcodeでビルドしたり、バックグラウンドでDockerを動かしたりもできるよ。(ファンが時々ジェットエンジンみたいにうるさいけど…)ついに新しい16インチのMBP M5 Maxを48GBメモリで注文したよ。Intelのサポートが今年中に終わるみたいだから、ソフトウェアのアップデートももう来ないだろうし。今のペースだと半年後には古くなっちゃうかもしれないけど、アップグレードの平均が7年だから、まあ大丈夫だと思う!
実際の作業には問題なく使えるよ。ただ、Slackとブラウザを同時に開くと、もうダメになるね。
直接関係ないかもしれないけど、どうやってそんな短期間で買収される価値のあるスタートアップを2つも作ったの?
> 「私は複数のiOSアプリを作って、M1 MBAを主なコンピュータとして2回スタートアップの買収を経験しました。neoはM1 MBAよりも優れてる。FCPで30〜45分の4Kレース動画を問題なく編集できたよ。プロのソフトウェア開発者になる前は、ノルウェー語のキーボードが付いた細い中古のノートパソコンを使ってた(私はノルウェー人じゃないけど)。それが買える唯一のものでね。これがPHPバックエンドとjQueryフロントエンドを開発してたコンピュータで、たくさんのプロジェクトを公開して、最初のソフトウェア開発の仕事に繋がったんだ。スタートアップで働き始めた初日にHNを見つけたのもこの時だよ :) 実際に使うハードウェアは、物事を実行する上では一番重要じゃない気がする。」
M1 MacBook Airを持ってる人が増えてきたおかげで、コメント欄の雰囲気が変わってきて、軽視する意見に反発する人も増えてきたね。8GBはApple SiliconのMac OSでは常に問題ないよ。新しく起動したときのRAM使用量は意味のない統計だし(使ってないRAMは無駄だからね)。それに、単純に性能もいいし!
2020年にモバイルのNehalem i5でAndroid開発とVerilog合成をやってたんだけど、そのマシンは「普通の人」がコンピュータでやることにはまだ十分使えるよ。タブの管理さえしっかりしてればね。実際、(ゲームをしたり、ローカルのLLM推論をしたりしない限り)人々がコンピュータに求めるものは、少なくとも10年は大きく変わってないと思う。
ファン付きのやつを買った方がいいよ。2020年のM1 MacBook Airで小さなReact Nativeアプリをビルドしたりインデックスしたりするのに数分かかるから。でも、あのデザインはマジで好き。
M1 Mac Miniを使ってて、RAMは8GBだけでiOSアプリを作ってたけど、全然できるよ。ただ、プロジェクトをビルドしてるときは、ちょっともっさりするのが気になる。XcodeでビルドしてからFirefoxに切り替えると、タブの切り替えに少し時間がかかるし、YouTubeの再生もたまにカクつくことがあった。16GBのIntel MacBook Proも使ってたけど、そっちで同じことをやるとずっとスムーズで快適だった。全体的に、やっぱりノートパソコンの方が「感じ」が良かったな。(これはビルド時間を測ってるわけじゃなくて、OSの快適さの話ね。)
最近の休暇でノートパソコンを持って行かずに、Androidフォン(Galaxy S22)とHDMIアダプター、Bluetoothのトラベルキーボードを使うことにしたんだ。宿泊先のテレビに繋いで、すごく楽しめたよ。Termuxでneovimを動かすのも問題なかったし、Elixirの開発も全然大丈夫だった。テストスイートは電話で5秒、ノートパソコンで1秒かかるくらい。RustとCargoのコンパイルはちょっと遅くて楽しめなかったけどね。これで、すぐにパッキングできて、外出中もエージェントにレビューのワークフローをやらせられたし、バッテリーの減りもあまり気にならなかった。
まず[1]を読んで、彼らがこれをやってる理由を知るのが重要だと思う。基本的にミームとしてやってるんだよ。 [1] https://motherduck.com/blog/big-data-is-dead/
> ビッグデータの別の定義は「データを保持するコストが、何を捨てるかを考えるコストよりも低いとき」と言われている。それはまさにその通りだね。
お金がないエコロジストとしては、この小さなコンピュータはRやWordで必要なことを全部できて、値段の割に素晴らしい作りだよ。今のところすごく楽しんでる。
どうやってもう手に入れたの?まだ予約販売中だと思ってたんだけど。
教えるときは、「ビッグデータ」を一台のマシンに収まらないデータとして使ってるよ。「スモールドータ」は一台のマシンのメモリに収まるデータで、「ミディアムデータ」はディスクに収まるデータ。そう言う意味では、DuckDBはすごいよ。最近、20年前のPythonアプリを現代のPythonに移植したんだ。バックエンドを入れ替え可能にして、PolarsかDuckDBを選べるようにしたら、40〜80倍の速度向上があったよ。2日で終わった。
気になるんだけど、polarsが40〜80倍のスピードアップを逃してたのは何してたの?ちゃんと使えば速さには満足してるけど、間違った使い方するとパフォーマンスが落ちちゃうから注意が必要だよね。
DuckDB大好き!AWS Lambdaでs3バケットにGZ圧縮されたデータのPoCをやったんだけど、約400行のC#コードが10行に置き換えられた。すごい便利なツールだよね。
> 「クラウドインスタンスにはネットワーク接続されたディスクがあるけど、問題をすぐに特定したのは素晴らしいね。その知識を持っているなら、ローカルストレージのある別のインスタンスタイプでベンチマークをやり直してみたらどう?例えば、`c8id.2xlarge`や`c8id.4xlarge`を試してみるとか(`c6a.4xlarge`のコストを挟んでるし)。」
ラズベリーでも動くんじゃない?I/Oストリーミングと効率的な変換で、家庭用PCと安いHDDでビッグデータ処理できてるよ。
NeoのAシリーズチップは、Piを圧倒してるんじゃないかな。ベンチマークでの競争力には本当に驚いたよ。「競争にはならないけど、使える」って感じだと思ってたのに、「Amazonのインスタンスに勝ったけど、そんなに強力なやつじゃない」って結果だった。
Raspberry PiのI/Oはひどいね。パッケージのままだと100倍遅いし、M.2ハットを使ってもまだ5倍遅い。
「ビッグデータ」に5GBのメモリ制限はないよね。多くの開発者が32GBのMacBookから始めたから、NEOがパワー不足に見えるんだと思う。でも、8GB、1500MB/secのI/O、たくさんのコアがエリートマシンだったのはつい最近のことだよ。ノートパソコンが壊れたとき、グロリファイドなeePC Chromebookでたくさん開発作業をしたけど、ターミナルを動かすのに多くのRAMは必要ないんだ。NEOがベースラインのテスト環境をリセットして、開発者がリソースを独占しないソフトウェアを出せるようになることを願ってる。「他と仲良くやる」ってのは、ソフトウェア開発者の信条の一部であるべきだよ。