CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に引き続き、2018年に公開されたエッセイ「2 Billion Devices and Counting: An Industry Perspective on the State of Mobile Computer Architecture」をもとにして、モバイルデバイスのハードウェアに関する話題をお届けします。このエッセイの後半部分では、モバイルデバイスのハードウェア性能を評価する際の注意点が「ワークロード」「評価項目(メトリック)」「方法論」の3つの観点でまとめられています。今回は、まず、「ワークロード」の観点での注意点を説明します。
モバイルデバイスのハードウェア性能を評価する際は、デバイス上で実行されるワークロードの種類を考慮する必要があります。この際、冒頭のエッセイでは、次の3点に注意すべきであると指摘しています。
ハードウェア性能を総合評価するためのベンチマークでは、一般に、典型的なワークロード(アプリケーション)の動作を組み合わせて評価を行います。サーバー用ハードウェアの標準的なベンチマークツールでは、サーバー上のワークロードの変化に応じて、数年ごとにベンチマークの内容が改訂されてきました。一方、モバイルデバイスのベンチマークで課題となるのは、モバイルデバイスで利用されるアプリケーションの種類は膨大で、それらの利用傾向も短期間で変化するという事実です。図1は、3種類の代表的な(人気の高い)モバイルアプリについて、Google Trendsで調べた人気の動向を示しますが、それぞれに大きく異なる傾向があります。たとえば、「Angry Birds」は、2010年〜2012年ごろに人気が出たアプリですが、利用者の興味は、その後、数年で減少しています。あるいは、「Pokemon Go」には、リリース直後のさらに極端なピークがあります。一方、ブラウザーの「Chrome」は、比較的、安定した人気を保っています。
図1 3種類のモバイルアプリのトレンド(エッセイより抜粋)
冒頭のエッセイによると、モバイルデバイスに関する文献の中には、今もまだ、「Angry Birds」を用いたベンチマーク結果で、ハードウェアの性能評価、あるいは、ハードウェアの設計改善に関する議論を行っているものもあるそうです。しかしながら、図1の動向を考えると、特定のアプリケーションに対するベンチマークだけで、将来への指針を得るのは困難なことがわかります。
また、ブラウザー(Chrome)は、インターネット上のコンテンツにアクセスする第一の手段として、安定的に利用されていますが、アクセス対象のコンテンツに応じて、実際のワークロードは大きく変わります。最近では、ネイティブアプリと同様に、CPU負荷の高いワークロードもブラウザーで処理されています。さらには、ブラウザーのレンダリングエンジンをネイティブアプリに組み込んで利用するという使いかたも一般的になってきており、ブラウザーの仕組みそのものも複雑化しています。図2は、Googleが提供する代表的なアプリについて、そのパッケージサイズ(APKサイズ)の変化を示したものですが、他のアプリに比べて、Chromeのサイズが突出して増加していることがわかります。
図2 代表的アプリのパッケージサイズ変化(エッセイより抜粋)
実際のところ、特定の用途に限定されたネイティブアプリと比べると、ブラウザーの動作は相当に複雑化しています。一般に、複数のスレッドを起動して、CPU、GPU、ビデオ/オーディオ・デコーダー、暗号化エンジンなど、さまざまなハードウェアコンポーネントによる非同期の並列処理が行われます。このような事実からも、モバイルデバイスのワークロードを考える上では、ネイティブアプリだけだはなく、ブラウザーも確実に考慮する必要があるというわけです。
今回は、2018年に公開されたエッセイ「2 Billion Devices and Counting: An Industry Perspective on the State of Mobile Computer Architecture」をもとにして、モバイルデバイスのハードウェア性能評価における考慮点、特に「ワークロード」の観点での注意点を説明しました。次回は、引き続き、「評価項目(メトリック)」と「方法論」の観点での注意点を説明したいと思います。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes