2019年4月17日水曜日

apt-getはまだオワコンじゃない話(2019年4月現在)

  • Debian9(stretch) 及び Ubuntu18.04(bionic) においては apt-getコマンドはオワコン( deprecated/obsolete)ではありません。 
  • aptコマンドは… 
    •  人間がコマンドラインを叩く時に使うフロントエンドなインターフェースであるとされているそうです。
    • そのために、バージョンで挙動が変わるかもとも明確に記載されています。
    • ソースは man 8 apt
      http://manpages.ubuntu.com/manpages/bionic/man8/apt.8.html
  • むしろ、シェルスクリプトにおいては、apt-getコマンドを使うことが推奨されています。
    • aptコマンドはインタラクティブ向けとあるので、それはそうですよね。
  • 聞きかじった情報の裏とりをすることは大切ですね。








2019年2月26日火曜日

[ポエム]コンピュータ周りの未来をあれこれ。

あれこれ妄想するのは楽しいですよね。最近はVRを中心にxRとかその辺に興味を持っています。マイクロソフトが出してきたHololens2などのデモムービーはわかりやすい良い例です。




この記事を書こうと思った動機と所感

最初に書くか最後に書くか悩ましかったのですが頭に持ってきました。
ある程度ものごとが進化すると”成熟”して必要性を感じなくなります。例えば、Webページを開く時にパッと既に開く場合、そこから2倍速くなりました!となっても嬉しい人は限られるといった形です。必要性や利便性を感じられないものにお金を払うか?というとかなり微妙です。スマホの買い換え頻度が下がっていくのもこれに似たところがあるでしょう。

用途に対して十分な環境が揃っていれば満足である。 という話に過ぎないですが、お金が回らないということは開発する動機や予算が付きにくいということにもなっていくのでマクロ的な視点ではもう少し影響があるのではないかと個人的には思っています。ふわふわした感覚なので何がというのはないのですが。

用途に対して十分な環境かどうかと述べましたが、1ユーザーとしては、xR/ARといった用途ではいろんなものがまだまだと感じています。今回の記事は何が足りないんだろうなー・何を埋めたら十分になるかなー?と妄想して、適当にキーワードを当てはめてみた感じです。こうして見るとハードウェアレベルだったりチップレベルだったりで頑張らないといけない部分多いなぁと感じたのでこれからもウオッチしていきたいなと思いました。

全固体電池(バッテリー)

2020年を目処に全固体電池が出てくるというニュース記事がちらほら。車業界が頑張ってるらしく、量産と信頼性が必須なので広く恩恵を受けられるのかな?と。
全固体電池の特徴として、体積辺りのエネルギー密度が上げられる(同じサイズならより長く使える)、電子移動度の観点で有利(高速な充電と大電力の出力が可能)、形状の自由度が高いなどがあるようです。

無線接続

WiFiの順当な進化に期待です。大容量・多接続がポイントになってくるのかなと。既に製品も出ていますがWiFi6(IEEE 802.11ax)が普及すると嬉しい予感です。

Galaxy S10シリーズ、世界初のIEEE 802.11ax(Wi-Fi 6)対応スマートフォンに - INTERNET Watch
https://internet.watch.impress.co.jp/docs/news/1170858.html

ここに絡めるべきなのかは疑問があるものの、VRのヘッドマウントディスプレイ(HMD)に関して思うところがあります。HMDに表示する映像にについては当然それを演算してくれる処理装置が必要です。それがケーブルで繋がったゲーミングPCか、内蔵されたスマホ向けのチップかという差はシステムによって異なります。
例えば、ゲーミングPCと接続しているケーブルを単純に無線化する他にも、クラウドに演算させてしまうとかやれることがグッと広がるのがポイントです。

複数人がこの手のデバイスを使うと単純に倍・倍で帯域が必要になったり、家族はスマホを使っていたりとするといった光景は容易に想像できるため簡単ではないと思うのですが、例えばHMD向けの60GHzなアンテナは天井につけちゃうとか局所化しつつ使い勝手をキープすることは可能なような気がしています。

【イベントレポート】視野角と解像度が2倍に、SoCがSnapdragon 850になったHoloLens 2
PC Watch https://pc.watch.impress.co.jp/docs/news/event/1171418.html
> Azure Remote Renderingなどが紹介された。前者はAzureのクラウド側でコンテンツをレンダリングして、HoloLens 2に動画ストリーミングで表示するサービス。強力なGPUを持たないHoloLens 2でもストリーミングであれば高精細なモデルも表示可能でCADで作成した3Dデータを、Azure側でレンダリングして、HoloLens 2で見るなどのアプリケーションが考えられる

HDMIケーブルを駆逐? 4Kで『遅延ゼロ』の最新Wi-Fi、Snapdragon 855が対応
https://japanese.engadget.com/2018/12/06/hdmi-4k-wi-fi-snapdragon-855/

IEEE 802.11ax, IEEE 802.11ay
次世代の60GHz帯無線LAN規格「IEEE 802.11ay」、11のユーセージモデルを想定
https://internet.watch.impress.co.jp/docs/column/nettech/1131187.html

ルームスケールの無線給電

上記とも被る点があるのですが、常に電力問題があります。信号を無線化した場合でも充電が手間となってきます。電源も無線化出来ると快適度が一段上がりそうです。また、電源を外部化できるとバイブレーションによるフィードバックなども躊躇すること無く利用できるようになるなどxRにおいては体感を向上させることができそうな予感です。

「長距離無線充電」制度化へ 総務省、20年度実用化後押し (1/2ページ)
https://www.sankeibiz.jp/macro/news/180705/mca1807050500001-n1.htm

とはいえ…
バッテリーパックを複数用意して利用している間に充電を完了させるという運用も当然あります。上記で述べた全固体電池が十分安く実用的に高速充電が可能ならばホットスワップで対応可能かも知れません。

PCIe Gen4

少し毛色が違いますが…。PCIeバスで高速なやつで欲しいものは、Ethernet、GPU、ストレージ辺りでしょうか。
【イベントレポート】【詳報】AMD、PCIe 4.0に対応した第3世代Ryzenプロセッサを今夏投入 ~Core i9-9900Kを上回る性能を発揮し、より低消費電力とアピール - PC Watch
https://pc.watch.impress.co.jp/docs/news/event/1163917.html

アプリケーションによっては、CPUもGPUも無限に欲しいという状況は昔からです。より身近な話としてxRとかVRといったアプリケーションが目の前に転がっているのでこの辺はどんどん改善されてほしいところです。

おわり。

2019年1月17日木曜日

Windowsの「プロセッサーのスケジュール」の設定について

CPU使用率に十分な余裕があるのにも関わらず、ゲームを遊んでいる時にClownfishというオーディオアプリがアンダーバッファ炸裂(ぶちぶちと音が切れまくる)しまっていた事に関するトピック。
結果的にこれはWindows設定の「プロセッサーのスケジュール」をデフォルトから「バッググランドサービス」に変更することで解決しました。
しばらく、この設定の意味することが分かっていなかったのですが息抜きがてらに調べたのでまとめておきます。

---
マルチコアCPUの消費電力はスケジューリングで変わる? - ASCII JP
http://ascii.jp/elem/000/000/672/672088/index-3.html
Long/Short - スレッド切り替え間隔を長くするか短くするか。長いほうがコンテキストスイッチのオーバーヘッドが小さくなり、短いほうがリアルタイム性は上がると推測されます。
Variable/Fixed - フォアグランドなプロセスにCPU時間を優遇するか否か。優遇する割合は次のパラメーターで設定できます。
QuantumBoost - 上記パラメータがVariableに設定されている時に利用されるパラメーターです。1倍、2倍、3倍から選べます。

Variable/FixedとQuantumBoostは被ってしまっているところがあるが互換性の都合と考えられます。
私が小学生でも知っていると冗談で馬鹿にされた「プロセッサーのスケジュール」の秘密はこのようになっていました。
> 「プログラム」と「バックグラウンドサービス」の2つの設定があるが、前者は「Short-Variable-3倍」(クライアント版Windowsのデフォルト値)を設定するもので、後者は「Long-Fixed」(サーバー版のデフォルト値)を意味

ボイスチェンジャーのようにリアルタイム性が要求されるプロセスを実行する場合は、フォアグランドが優先されるとアンダーバッファを引き起こす可能性があり得そうです。
また、リアルタイム性を上げるために切り替え間隔をShortに切り替えるのは何か効果が望めるかもしれません。とはいえ当然ながら、リアルタイム性を向上させるとオーバーヘッドが増加するのでこの辺りのバランスになりそうです。効果の程はやってみないと分からないところがあります。

8コアのようなシステムならば基本的にはプロセスアサインのstrategyがうまくできれば意識しなくても良さそうなものなのですが、この辺りはよく分かっていません。