You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
prev: http://d.hatena.ne.jp/mjt/20120916/p1 注目すべきWindows 8の新機能に、新規に導入された幾つかの同期プリミティブがある。Windows 8/2012のSDKでは、Synchapi.h等のヘッダが追加され、同期プリミティブはそちらに移動した。 WaitOnAddress WakeByAddressSingle WakeByAddressAll は、アドレスとそれが指す値を使用してスレッド間の同期を実現するもので、カーネルオブジェクトではないので使いたい放題というポイントがある。つまり、これは他のより高機能な同期オブジェクトを作るときのプリミティブとして使用できる。 WaitOnAddressは、アドレスとサイズ、比較元アドレスを取り、比較元アドレス == アドレスのときに寝る。そうでない場合は寝ない。スレッドを起こしたい時はアドレスに対
最近ではCPUはマルチコアであることが多く、プログラムがマルチスレッドに対応している場合、 処理時間を大幅に短縮することができる。 意外と機会の多いtarコマンドによる圧縮伸長処理はデフォルトではシングルスレッドで動作するため、 マルチコアCPUの恩恵が受けられない。 tarコマンドがマルチコアCPUの恩恵を受けるための方法を調べた。 従来の方法 tar使用時の圧縮形式とオプションについては次の表のようになる。 圧縮形式 拡張子 圧縮 伸長 圧縮率 処理時間 備考 GZIP tar.gz cfz xf 低 速 BZIP2 tar.bz2 cfj xf 中 中 XZ(LZMA2) tar.xz cfJ xfJ 高 遅 1.22からサポート 大体、vオプションを含んで実行することが多いため、コマンドの実行例は次のようになる。 $ tar cvfz HOGE.tar.gz ./HOGE マルチス
Hi! My name is Dmitry Vyukov, and I'm going to share here various information about lockfree, waitfree, obstructionfree synchronization algorithms and data structures, scalability-oriented architecture, multicore/multiprocessor design patterns, high-performance computing, threading technologies and libraries (OpenMP, TBB, PPL), message-passing systems and related topics. I'm mostly interested in s
ftraceのfunctionトレーサやfunction graphトレーサを使うと、カーネルの関数呼び出し処理を追いかけることができます。 ftraceの諸機能をカーネルで有効にする方法については前回の投稿を参照してください。ただし今回書いている内容は、恐らくFedoraやUbuntuのカーネルではデフォルトで有効になっています。 関数コールトレーサ ftraceにはLinuxカーネル内の関数呼び出しをトレースする関数コールトレーサ・関数コールグラフトレーサをサポートしています。 関数コールトレーサはfunctionを、関数コールグラフトレーサは function_graph を、/sys/kerne/debug/tracing/current_tracerに書き込むだけで利用できます。 これらの関数コール(グラフ)トレーサは、インライン展開されていないすべての関数呼び出しをトレースし、
!告! ぶろぐのhttps化によってSyntax Highlighterが機能しなくなってしまいましたので 現在正常に閲覧できるよう過去の記事を適宜修正中です!! ●OpenOCDでマルチコアデバッグするやり方 竹本様よりコメントでお題をいただいたのでトリプルコア搭載のLPC4370ボード、 LPC-Link2を使って実践してみました。 まずねむいさんのOpenOCDバイナリの/tcl/targetlpc4370_lpclink2_spifi.cfgを 編集します。デフォルトはm4コアしか有効にしていませんがm0subを有効にします。 ①と②の部分が編集した部分です。 m0appは電源投入直後は寝ているので今回は省きます。 なお順番が重要でm4コアを必ず先頭に持ってきておきましょう。 まずOpenOCDを起動したらm4コアにアタッチします。insightでつなぎます。 insightではT
karino2 が 並列プログラムから見たFuture というビデオを作って公開していたので、引っ越しの荷造りをしながら眺めた。 長いのでここにざっくりとした主張をまとめると: Future/Promise (およびその後釜の async/await) は非同期プログラミングで callback hell にならない発明という見方をされているが、 そもそもなぜ callback hell が必要だったかの時代背景が十分に理解されていない。 背景の一つはブラウザ JavaScript のプログラミングモデルにシングルスレッド・ノンブロッキング(イベントループ)という制限があったから。 これは(特にフロントエンド開発者の間では)よく理解されている。 もう一つの視点は SEDA みたいなマルチスレッド・ノンブロッキング環境の必要性で、 こっちはいまいち広く理解されていないように思える。 結果とし
自分は仕事で電話機のカメラアプリ開発を手伝っている。 なのでカメラアプリから見るとどうかを中心に議論してみたい。 電話機の CPU はどのくらい使われているのか 電話機の CPU, 最近だと 8 コアくらいある。こいつらを活用したい。 わけだけれど、まず現実にはどのくらい活用されているのか実例を眺めてみる。 ちょっと前に自分のブログで Perfetto というトレーシングツール (プロファイラだと思ってください)を紹介した。 その中で実際にいくつかのアプリのトレースを集めた。手頃な実例になっている。 アプリの起動 このデータ をダウンロードして、ui.perfetto.dev から開いてほしい。 以下画面写真: このトレースは Pixel 2 という電話機の上で TikTok というアプリの起動直後 5 秒間をキャプチャしている。 細かいところはわからなくていいけど、“CPU 0” から
Press ← or → to navigate between chapters Press S or / to search in the book Press ? to show this help Press Esc to hide this help
Apple M1についての面白い記事を見かけて、久しぶりにメモリモデル屋(?)の血が騒いだのでブログを書く。 note.com 強いメモリモデル 現代のCPUアーキテクチャでは、x86(64bit, 32bitどちらも)が「強いメモリモデル」を採用しており、それ以外のメジャーなCPUが「弱いメモリモデル」を採用している。この「強いメモリモデル」「弱いメモリモデル」について、まずおさらいしておこう。 以下のように、2つの変数a, bに対して異なるCPUコアが同時にアクセスしたとする。 int a = 0; int b = 0; CPU1: a = 1; b = 1; CPU2: int r1 = b; int r2 = a; (上記はC言語に似た疑似コードを用いているが、実際は機械語命令になっていると考えてほしい。つまり、CPU1は変数a, bの示すメモリアドレスに対するストア命令を実行して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く