タグ

マルチスレッドに関するbelgianbeerのブックマーク (3)

  • PNG Parser Differential

    This PNG image renders differently in Apple vs non-Apple decoders: If you're using Apple-flavoured software, you should see "HELLO APPLE", and on all other software, you should see "HELLO WORLD". I found this while writing my own multi-threaded PNG decoder. While pondering my design, I realised that I had an exploitable implementation bug. After learning that Apple has their own implementation of

    belgianbeer
    belgianbeer 2021/12/16
    マルチスレッドでPNGを処理する場合にバグる例 Appleは現状バグってる
  • コンピューター:C言語講座:マルチスレッドについて

    コンピューター:C言語講座:マルチスレッドについて マルチスレッドの特徴 一般的なサーバプログラムでは、多数のクライアントからの処理をできるだけリアルタイムに処理するために、何らかの形で並列処理を行うことが多いものです。たとえば、データベースサーバで、ある検索処理に時間がかかっている間ほかのクライアントが接続すらできない、という状態ではサーバとして失格でしょう。 並列処理を実現する方法としては、 ・プログラム自体を並列処理可能に記述する ・プロセスをもともと多数起動しておく ・fork()を使って子プロセスを起動するマルチプロセス処理 ・マルチスレッドを使用する などが考えられます。プログラム自体をリアルタイム性を考慮しながら記述するのはなかなか大変で、しかもソースが複雑になりメンテナンス性も問題が多くなりがちです。プロセスをもともと多数起動するのは簡単ですが、クライアントがどのプロセスに

    belgianbeer
    belgianbeer 2012/07/23
    マルチスレッドの簡単な例
  • AtomでHTを使ってピーク性能を向上させる 2010-07-15 - J

    HyperThreadingというかSMTは最適化されたプログラムだと全く効果が無いという説があるが、そうでないこともある。 きっかけはAtomのmovdquが遅くて泣きたい、というようなのだった。 Intelの最適化マニュアルを見ると、movdquはレイテンシ3のスループット2とか書いてあんだが、実測すると全く信じられない。Agnerさんのinstruction tableのレイテンシ6、スループット6の方が正しいと思う。(スループットは逆数表示です) スループット6というのがどのくらい酷いかというと、 void vecadd(int *a,int *b,int *c,int n) { int i; for (i=0; i<n; i++) { a[i] = b[i]+c[i]; } } こういうのだと全然速くならんぐらいに酷い。 このプログラムは命令列は load,load,add,st

    AtomでHTを使ってピーク性能を向上させる 2010-07-15 - J
  • 1