マガジンのカバー画像

プログラムを高速化するマガジン

22
ソフトウェアプログラムを高速化するのが好きな人に、読んでほしいことをまとめました。
運営しているクリエイター

記事一覧

固定された記事
高速なプログラムを書くためのコツ3選

高速なプログラムを書くためのコツ3選

プログラミング歴30年以上のムンペイです。
中学生のときに出会ったメガデモ(※1)に魅せられて高速なプログラムの追求にハマりました。就職後も、DSPの画像処理、ヘテロジニアスマルチコアプロセッサでの性能追求など、仕事でも高速プログラムの開発に携わってきました。
その経験で得た、基本的な高速化のコツを優先順に3つ挙げてみます。

※1: GPUどころかまだGUIのOSも珍しかった時代に、16MHz程

もっとみる
【シムディーと読もう!】SIMDによる高速化の実装方法3選

【シムディーと読もう!】SIMDによる高速化の実装方法3選

30年以上のプログラミング歴の半分は高速化をしてきました、ムンペイです。
複数のデータを同時に処理する並列化は、高速化の最重要テクニックの1つです。そのうち、1つのCPUコアの中で並列化を実現する命令レベル並列化について、SIMD演算を適用する方法について、私の経験をもとにしてご紹介します。

SIMDはシムディーと読もう!SIMDとは、Single Instruction, Multiple D

もっとみる
【挑戦するべき?】気になっている言語とフレームワーク3選

【挑戦するべき?】気になっている言語とフレームワーク3選

ムンペイと申します。
30年以上、プログラミングをしています。

取り組めていないものの、個人的に現在注目しているプログラミング言語またはフレームワークを3つご紹介したいと思います。

1.Rust私はかつてはC++を長くメイン言語として使っていましたが、それはOSすら記述できる汎用性とCPU命令にコンパイルされることによる高速性が魅力だったからでした。そのメリットを享受するにはメモリアクセス違反

もっとみる
【実践的スキル!?】最適化プログラミングがSTEM教育に効果的な理由3選

【実践的スキル!?】最適化プログラミングがSTEM教育に効果的な理由3選

30年以上プログラミングをしている、サムライアプスのムンペイです。
カメラで撮影した画像から製品の微細な傷を検出する処理をDSPという並列プロセッサ向けにプログラミングすることなどを行ってきました。

ソフトウェアというものは良い作り方をすると、同じハードウェアなのにずいぶんと性能が良くなるもので(いわゆる軽い)、時にはその比率は10倍、100倍になる場合もあります。このようなハードウェアの性能を

もっとみる
【高速化しない!?】高速化の観点3選

【高速化しない!?】高速化の観点3選

30年以上プログラマーをしているムンペイです。学生時代に高速化プログラミングにハマり、そのまま仕事にしてしまいました。
高速化と一口に言っても、高速になってほしい部分によっていくつかに分類ができます。目的をしっかり分類することで適切なアプローチを選ぶ助けになります。私が高速化を考える場合に用いる観点を3つご紹介します。

1. 大量のデータ処理を短時間で処理する大量のデータを扱う場合は、データ並列

もっとみる
【皆さんもある?】もうあまり読まないけど大事にしている本3選

【皆さんもある?】もうあまり読まないけど大事にしている本3選

30年以上プログラミングをしているムンペイです。
若い頃に読んで影響を受け、いまはもう手に取ることはないけど、本棚には大事にしまってあるという本を3冊ご紹介します。

1. 自分で作れるパソコンゲーム最初はパソコンゲームの作り方の本で、中学生か高校生くらいの頃に買ったものです。

私もゲームをやりたくてプログラミングにハマっていったクチでして、プログラミングが自力でできるようになってくると、もっと

もっとみる
【敢えてやる】JPEGを実装してみてその後のプログラミングに役立ったこと3選

【敢えてやる】JPEGを実装してみてその後のプログラミングに役立ったこと3選

30年以上プログラマをしているムンペイです。
JPEGを勉強してほとんど自力で実装したことがあり、その経験から学んだ知見がいまでも生きています。どんな学びがあったか、3個紹介します。

1.現代的なデータ圧縮技術特に説明の必要はないと思いますが、JPEGとは非常にポピュラーな静止画の圧縮技術の1つの名称です。Joint Photographic Experts Groupという画像圧縮の規格を決め

もっとみる
【知ってる?】私が出会った変態プログラミング言語2選

【知ってる?】私が出会った変態プログラミング言語2選

プログラミング歴30年以上のムンペイです。
BASICに始まり、C++時代が長く続き、ここ10年はPythonはメインになっている、といった感じで言語を変遷させていますが、プログラム言語というものはどれでも究極的にはコンピュータを動かすためのものという点で共通しているので、ある言語の知識を応用すれば他の言語でも短期間でそこそこキャッチアップできるケースは多いのですが、苦労する場合ももちろんあります

もっとみる
【やった!】ソフトウェア開発で達成感を味わった経験3選

【やった!】ソフトウェア開発で達成感を味わった経験3選

こんにちは、ムンペイです。
プログラミングを30年以上やっています。

プライベートで、仕事、多くのソフトウェア開発を経験してきましたが、特に達成感を味わった経験を3つ挙げてみたいと思います。

1.ダウンロード100万超のスマホアプリ私はお客様から依頼を受けてソフトウェアを開発する「受託開発」を行う会社に勤めています。もう10年近く前の経験になりますが、受託開発して納めたスマホアプリがダウンロー

もっとみる
【まだ遅くない】学んでおけばよかったプログラミング技術3選

【まだ遅くない】学んでおけばよかったプログラミング技術3選

30年以上の経験を持つプログラマのムンペイです。
プロセッサの性能を引き出すソフトウェア高速化や、組み込みプロセッサ向けのソフトウェア開発を主なフィールドとして経験してきましたが、部品にとどまらずアプリを作って世の役に立つために、もっと学んでおけば良かったと思う技術を3つ、ご紹介します。
(プロモーションを含みます)

1.データベースアプリケーションシステムの開発に欠かせないデータベース。
プロ

もっとみる
【学生に捧ぐ】30年プログラマが学生時代にしていたこと3選

【学生に捧ぐ】30年プログラマが学生時代にしていたこと3選

プログラミングを30年以上しているムンペイと申します。
サムライアプスという名前でチーム活動もしています。

私が小学5年生の時に、自営業で新し物好きの父が、仕事で使うために買ったPCを、日中の父不在の時間に借りるようになったことから、プログラミングにはまりました。そんな私が、入門期である学生時代に行っていたことを3つ挙げてみたいと思います。

1.ベーマガの写経やはり入門期に一番の原動力になった

もっとみる
【迷宮?謎解き?】デバッグに苦労した経験と学び3選

【迷宮?謎解き?】デバッグに苦労した経験と学び3選

こんにちは、ムンペイです。
プログラミングを30年以上しています。プログラム高速化に関する経験をnoteに吐き出しています。サムライアプスという名前で中小企業のIT活用向けの情報発信もしています。

さて、デバッグもたくさんしてきましたが、特に苦労した経験事例を得た学びも交えて3つ挙げてみたいと思います。

1.マルチスレッド
高速化を目指すなら必須技術であるマルチスレッドは、デバッグしにくいパタ

もっとみる
【基礎】コードレベルの高速化で最初に取り組むこと4選

【基礎】コードレベルの高速化で最初に取り組むこと4選

高速化大好き、プログラミング歴30年のムンペイです。

プロファイリングを終え、アルゴリズム的な最適化も概ね問題ない状態で、実装方法による高速化に取り組む段階で、まず見直すところを4つ挙げてみます。
今回はソースコード例の作成を中心にChatGPTに手伝ってもらいました。

ループ内の無駄な処理の最適化まずは冗長な処理の削減に取り組みます。
ループの中で各イテレーションで値が変わらない計算は、ルー

もっとみる
【速さだけじゃないの!?】プログラム高速化の実践的メリット3選

【速さだけじゃないの!?】プログラム高速化の実践的メリット3選

ムンペイと申します。30年以上プログラミングをしています。学生時代に高速化の面白さにハマり、そのまま仕事でも同じようなことをすることになりました。

さて、高速化と一口に言いますが、メリットは高速になることだけではありません。高速化から得られるメリットを3つ、ご紹介します。

1. 処理が早く終わる処理が早く終わります。一番期待される効果はこれでしょう。
早く終わる事自体はわかりやすいと思うのです

もっとみる