サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
qiita.com/zacky1972
原文: https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/ 1年前のElixirConf EU 2022で,私たちはElixirの型システムを研究開発する取り組みを発表しました.動画 報告書 訳註: 報告書日本語訳 この研究は,CNRS 上級研究員の Giuseppe Castagna の指導の下で行われており,Guillaume Duboc が博士課程の研究の一環として担当し,さらに私 (José Valim) が指導しています. この記事は,私たちの取り組みの現状と今後の方向性をまとめたものです. 研究完了 研究中の私たちの主な目標は,Elixir の機能のセマンティクス(意味論)のほとんどをモデル化できる型システムを見つけること,さらに互換性がない,または欠けているとわかった領域についてま
大学の授業で講義資料を作ったので,Qiitaにも展開しておきます. この記事シリーズでは,並行・並列プログラミングについて,要(かなめ)となる同期・排他制御の役割をCとJavaを例に簡単なプログラム例を示します.次に同期・排他制御の問題点をCのプログラム例とともに示します.そしてElixir(エリクサー)によって実現されている,全てをイミュータブルにすることによる利点について示します. シリーズ 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その1「背景: クロック周波数の停滞とコア数の増加」 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その2「スレッドと同期・排他制御」(本記事) 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その3「同期・排他制御の2つの問題点」 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その
大学の授業で講義資料を作ったので,Qiitaにも展開しておきます. 背景: クロック周波数の停滞とコア数の増加 コンピュータはクロック周波数に同期して計算をします.おおむね1秒間にクロック周波数の数で示されるだけの数の機械語命令を実行できると考えると良いです.たとえばクロック周波数が1GHzであれば,1GHz=1,000MHz=1,000,000(百万)kHz=1,000,000,000(10億)Hzですので,1秒間に1,000,000,000(10億)個の機械語命令を実行できるというような感じです.もちろんこれは概算です. いわゆるヘネパタ本(J. L. Hennessy & D. A. Patterson: Computer Architecture: A Quantitative Approach, 6th edition. Morgan Kaufmann, 2017; 邦訳 中條・
はじめに このテキストではSIMD(シムディー)について解説します。 GPUの動作原理 最近のCG,3Dグラフィックというのは数学的な演算を非常に多く行うものなので,CPUにも勝る計算能力を備えたGPUが一般的に出回るようになってきました。3Dグラフィックでは,整数や浮動小数点の演算を非常に数多く並行して行う必要があることから,最近のGPUにはCPU以上の並列処理機能が備わっています。 上図↑は少し古いグラフィックボードですが,これらの中にGPUが入っています。 SIMD と MIMD 一般的なGPUの並列プログラミングのモデルは,SIMD (シムディー)と呼ばれるものです。SIMD は Single Instruction, Multiple Data の略で,直訳すると,単一の命令列で複数のデータを処理するということになります。GPUは同じような計算を異なるオブジェクトに対して行うこと
この記事はElixir Advent Calendar 2020の25日目の記事です。 昨日は @piacerex さんの「クラウドの外でエッジサーバを作るためのElixir技術スタック(+立てた予定を仲間と実現できるようになる思考パターン)」でした。 Elixir Advent Calendar 2020がAdvent Calendar Ranking 2020のプログラミング言語部門のLGTM数順位で2位にランクインしましたね。スゴイことです! さて25日目最終日の今日は,予定を変更して「大学でElixirを教えた話」にしました。これは「大学でRustを教えた話」を見て「書かねば!」と思い書きました。 Elixirを大学で教える理由 私は北九州市立大学で教育・研究に従事しています。プログラミング言語処理系,ソフトウェア工学,組込みソフトウェア,プログラミングなどを教えています。 研究で
前回の「各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安」は,思わぬ反響を呼んだので驚いております。 今回の記事は,その記事の活用編にあたる記事です。コンパイラのコード最適化を設計・実装する時に重要な観点を,つらつらと書いてみます。 原則: 高速なメモリ・ストレージは容量が小さい 前回の記事の結論を再掲します。 メモリ/ストレージの種類 アクセス時間 アクセス開始までの所要クロックサイクル 最大転送速度 容量
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 各種メモリ/ストレージについて,2024年時点で標準的なアクセス時間,所要クロックサイクル,転送速度,容量を,各種カタログスペックを参考にまとめてみました. レジスタ(レジスタファイル) 最近のCPUのレジスタ(register)のアクセスは,通常CPUの1クロックサイクルで完了します.2024年時点では,標準的なCPUのクロック周波数は,1〜5GHz程度のオーダーです.1GHzは1秒あたり10億回,すなわち1クロックサイクルは1ナノ秒です. したがって,2024年時点では,レジスタには0.2〜1ナノ秒程度でアクセスできると言えます.
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 英語の技術文書を早く読むにはどうしたらいいでしょうか。 注意: この記事の目的は「技術文書について」「早く大意を読み取る」ことを目的としています。 技術文書でないもの,例えば,小説や詩には当てはまりません。 技術文書を読む場合でも,例えば,「論文を批判的に読むとき」や「扱いが悪いと故障する可能性のあるハードウェアのマニュアルを読むとき」には精読すべきですので,この記事は当てはまりません。 頻出英単語を覚える もし「英語の技術文書を早く読みたい!」と悩んでいるとしたら,多くの場合,英語の技術文書を読むのに,英単語をほぼ全て辞書を引いている
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 私の書くQiita記事の中で,英語に関する記事は,いいね改めLGTMを得やすいようですね。次の3つの記事はどれもLGTMが100を超えました。 parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された ソフトウェア技術者のための英語習得法の案 続・ソフトウェア技術者のための英語習得法の案 今回私が書く記事は,そこまでたどり着かない人向けの記事です。 前提としては,4技能の傾向が,reading > writing > speaking
はじめに RISC-V の最も基本となるインストラクション・セット・アーキテクチャ(ISA)モジュールである RV32I: RISC-V 基本整数ISA について紹介します。 アセンブリコードの種類 GNU のアセンブラである gas の場合,アセンブリコードは大きく次の3つに分かれます。 種類 例 説明
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに RISC-V(リスク・ファイブ) というインストラクション・セット・アーキテクチャ(ISA)は,知る人ぞ知るという感じで,最近急速に注目を集めています。え,聞いたことないですか? そうですか。。。 ISA といえばx86とかARMとかが有名で,これらがデファクトスタンダード(事実上の標準)みたいな感じになっている中で,なぜ RISC-V なんていう,聞いたこともないようなISA について,わざわざこれから学ぶ必要があるんでしょう? 実は,私,RISC-Vの噂を聞きつけて,RISC-V原典を読んで,軽く感動を覚えたんですよね!
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに みなさんは,プログラミングが得意ですか,苦手ですか? 苦手だという人は,もしかしたら,コンピュータがどのように動作するのかを具体的にイメージできていないのかもしれませんね。 本記事は,コンピュータの動作原理について,初学者がどのように習得したらいいかのヒントを提示します。 前提知識 「コンピュータの基本構成と動作原理〜知識編」のうち,コンピュータの基本構成に登場する言葉をすでに知っているという前提でお話しします。 コンピュータの動作原理を習得する方法 コンピュータの動作原理を習得する方法は,少なくとも次の4通りあることを確認し
この記事は「Hastega @ Lonestar ElixirConf 2019」 から一部転載しております) 私にとって劇的に効果的だった英語習得方法をご紹介します。 フォニックス 多読 海外技術交流のSlack 番号は取り組む順番です。 1,2 については,既存のリソースがいろいろあるので,活用しましょう。この2つを教えてくれるトレーナーが身近にいると,本当に助かります! 私の場合は身近に相談できる人がいたのが幸いでした。 3については,「parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された」に経緯を書いています。(Shawn は元気かな。。。parcel Slack から Shawn が姿を消して以来,parcel からすっかり遠のいてしまいました。。。) ソフトウェア技術者の皆
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? (この記事は「Elixir Advent Calendar 2018」25日目です) 現在,Elixir は,Erlang VM (アーラン ブイエム) という仮想機械(VM)上で動作します。Erlang VM はもともと Erlang というプログラミング言語のために開発された並行処理が得意な VM で,Elixir の他にもいくつかのプログラミング言語が Erlang VM 上で動作します。 近年,Erlang VM を再実装しようという動きがにわかに盛んになってきたようです。 AtomVM: https://github.com/
(この記事は「FPGA Advent Calendar 2018」17日目です) すみません,技術ポエムです。 「FPGA Advent Calendar 2018」16日目は @youkis さんの「GUINNESS + Intel OpenCLでディーブラーニング(1)」でした。 私は基本的にソフトウェア屋さんですが,以前より FPGA の潜在的可能性には大いに期待していました。そこで,FPGA に関連する共同研究をスタートさせています。 今回は,その共同研究者による研究構想がまだ間に合っていないので,今後ご期待を...!!! ということなのですが,せっかく「FPGA Advent Calendar 2018」がオープンになっていたので,RISC-V のソフトコアを FPGA に載せてプロセッサアーキテクチャとプログラミング言語処理系の研究してみたいというポエムを書くことで,名乗りを上
(この記事は「機械学習工学 / MLSE Advent Calendar 2018」の9日目です) 「機械学習工学 / MLSE Advent Calendar 2018」8日目は @watanabe0621 さんの「初めてのMLシステム開発とデプロイ」でした。 「機械学習工学 / MLSE Advent Calendar 2018」9日目の今日は,並列プログラミング言語 Elixir(エリクサー)とそれによる機械学習ツールチェーンについてご紹介します。 @arutema47 さんの「2018年版 機械学習ハードウェアのState of the Artを考える ~CPU, GPU, TPUを添えて~」にも関連する話も言及したいと思います。 Elixir に注目する理由 私たち fukuoka.ex が Elixir に注目する理由を説明します。 今後,IoT の急速な普及などの理由でデータ
parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された 2017年末に parcel に Pull Request を送ってから,年を越して2018年初に merge されました。 Resolve Dependency correctly if the target asset is URI-encoded #401 (Issue of parcel-bundler/parcel on GitHub) ※ この記事は parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された〜実験室 〜 Lab in ZACKY's Laboratory を転載しました。 背景 Ruby on Rails
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
参考記事: Docker Part 1 - Mac に Docker をインストールする〜かんがえるさかな (補足) 私の場合,これ↑に先立って,brew cask update としたらエラーが発生しました。原因は brew cask が brew に統合されたためでした。最近は brew update とするだけで cask の方もアップデートされます。 もちろん公式サイトからダウンロードしてインストールしても構いません。 Docker Toolbox ダウンロードページ(英語) Mac での Docker Toolbox インストール方法(英語) 手順2: プレビュー環境を作る プレビュー環境の作り方は2通りありました。 grahamc / docker-jekyll を利用する方法 Preview a Jekyll site with Docker on Mac OS X (英語)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? コンピュータの基本構成と動作原理に関わる専門用語を解説します。新たに覚える言葉が多いですが,頑張ってついてきてください。 1.コンピュータの基本構成 コンピュータは基本的には次のような構成をしています。 それぞれの構成要素は次の通りです。 CPU は,Central Processing Unit (中央処理装置)の略で,プロセッサ (processor) ともいいます。プログラムにしたがってさまざまな数値計算や情報処理,機器制御などを行います。コンピュータの司令塔の役割を担っています。レジスタ (register) は,CPUの中にあ
unsigned int fact(unsigned int x) { unsigned int y; if(x == 0) { y = 1; } else { y = x * fact(x - 1); } return y; } void main(void) { unsigned int p; p = fact(3); ... } なお,unsigned int は符号なしの整数という意味です。 3. オブジェクトコード (Z80風) このソースコードをZ80風のアセンブリ言語コード(生成対象のプログラムという意味で オブジェクトコード と呼びます)にしてみました。ただし,実際のZ80には存在しない命令を含んでいます。これらの命令はZ80のインストラクション・セットに沿って命名されています。 ちょっと手間がかかりますが,まずは実際に main からトレースしてみてください。 各レジスタ
このページを最初にブックマークしてみませんか?
『@zacky1972のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く