タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
1954年に考案され、広く用いられた世界初の高水準言語が「Fortran」です。多種多様なプログラミング言語が存在するにもかかわらず、考案から約70年が経過した「Fortran」が依然としてプログラマーに愛用されている理由を、カリフォルニア工科大学のMartin D. Maas氏が解説しています。 5 Reasons Why Fortran is Still Used https://www.matecdev.com/posts/why-fortran-still-used.html Fortranは古いプログラミング言語ですが、高度な計算に特化しており、物理学科やスーパーコンピューターの研究機関、政府機関などで2022年時点でも用いられることがあります。Maas氏はFortranの歴史と強みを説明するとともに、Fortranが今後も維持されるのかについて5つの点から解説しています。 ◆1
筆者は先頃、「ChatGPT」に12の人気プログラミング言語で同じルーチンを書かせるテストを実施した。しかし、プログラミング言語マニアの筆者は、ChatGPTの限界を知りたくなった。1950年代の言語でプログラムを記述することはできるだろうか。独自の文字セットを使用する言語でプログラミングは可能なのか。自らのコードを記述した言語の1つでコードを書けるのだろうか。 そこで試してみることにした。今回取り上げる言語の多くは筆者が使ったことがあるものなので、少し思い出を振り返って、使用の体験談もいくつか紹介する。 コード自体を実行したわけではないが、生成されたすべてのプログラムに目を通した。大半は正しいように見えるし、出力された言語が筆者が指示した言語であることを示すものが表示されている。 なぜこう書いたかというと、すべてのスクリーンショットのヘッダーが間違っているからだ。ほとんどが「SQL」とさ
FORTRANとは インストール Hello world カラム キーワード 型 文字(CHARACTER) 真偽値(LOGICAL) 1バイト整数(BYTE) 整数(INTEGER) 実数(REAL) 虚数(COMPLEX) 倍精度(DOUBLE) N次元配列(DIMENSION) 演算子 変数 制御構文 CONTINUE文 GOTO文 DO文 DO WHILE文 IF文 IF文 PAUSE文 STOP文 入出力 PRINT文 FORMAT文 OPEN文 READ文 WRITE文 CLOSE文 関数・サブルーチン FUNCTION文 SUBROUTINE文 CALL文 RETURN文 その他 IMPLICIT文 リンク FORTRANとは IBMのジョン・バッカス氏らが1954年に考案した世界最初の高水準プログラミング言語です。 名前は「FORmula TRANslation(数式処理)
要点 下の gif 画像の圧縮性流体計算をするコードを Fortran, C++, Rust, Python, Julia で組み、実行速度を比較した。 計算で必要になる巨大配列を、それぞれメモリの静的領域、スタック、ヒープに格納するような 3 バージョンのコードを組んだ。 ヒープを使わないならば、Fortran, C++, Rust 間の速度差はそこまで無いことが分かった。 ヒープに配列を割り付けるような外部ライブラリを用いるならば、実行速度はもっと速くならないのか、一考の余地があると思った。 ↓ グリッド数 $400\times 400$ の場合の計算結果 オーバーヘッドが発生する余地もそれほどない単純なコードなので、言語比較の観点では面白くないかもしれないが、これから同様のコードを作ろうとしている方の判断材料になればと思い、公開した。 本記事は、再現性のある公平なベンチマークではなく
はじめに Fortranには長い歴史があり、先人たちが作成した効率の良いアルゴリズムで実装されたプログラムがライブラリとして提供されている場合があります。これらのライブラリを自分たちのプログラムで使わない手はありません。 今回は、LAPACK / BLASという線形代数の計算ライブラリを利用する方法と、これらのライブラリを使うといかに実行速度が速くなるかを示したいと思います。 macOS Sonoma(14.7), gfortran (gcc version 14.1.0), Processor: 2.4 GHz 8-Core Intel Core i9, Memory: 32 GB 2400 MHz DDR4
計算科学に関わる研究室では, FORTRANで書かれた秘伝のソースが醸成され, 継承されています. 教授「FORTRANわかる?」 学生「Fortranわかります!」 なんていう会話が聞こえてきますね. FORTRANは現代の最新エディタを以てしても扱うことが困難な古代技術ですから, この学生は苦しむことになります. FORTRANとは何か ここではFORTRAN 77以前のものをFORTRAN, Fortran 90以降のものをFortranと呼びます. FORTRANの時代遅れとされた機能はいくつかありますが, 中でも固定形式が特徴的です. 固定形式のプログラムの例としては, A.ザボ, N.S.オストランド『新しい量子化学(上) 電子構造の理論入門』の付録などをご覧ください. これは Computational Chemistry List (CCL) で配布されているプログラムです
Liam Tung (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-05-17 06:30 FortranはIBMによって1950年代に生み出された最も古い商用言語だ。そしてプログラマーたちが何年も前からその絶滅を予想しているにもかかわらず、誕生から64年がたった今でもFortranは現役であり、米航空宇宙局(NASA)や米エネルギー省(DoE)の優秀な科学者たちを含むユーザーらが、世界で最もパワフルなスーパーコンピューター上でこの言語を使用している。 またごく最近では、極めて意外なことに、この言語が人気プログラミング言語ランキングに再び登場している(ただし順位は20位だ)。こうした人気再燃の背景には、Fortranが得意とする科学技術計算関係のニーズの増大がある。 とは言うものの、科学者たちがこぞってPythonやJuliaといった新しい言語を選ぶ
Fortran とは Fortran とは formula translator から取られたもので、その名の通り数値計算に強い、静的型付けのコンパイル言語です。1950年代に登場し、初期の頃はパンチカードにコーディング (パンチング?)し、カードの束を計算機センターに持ち込んで計算していたそうです。 古くからあるため、豊富なライブラリの蓄積があります。そのため、いまでも科学計算の分野で使用されているプログラミング言語です。 コンパイラとは Python や Perl、JavaScript のように、エディタでコーディングしただけでは実行することができません。コンパイラというソフトウェアを使用して、ソースファイルをコンパイルし、コンピュータに実行させるための実行ファイルを作成する必要があります。 いくつかのコンパイラがありますが、この記事では、オープンソースのコンパイラである GNU Fo
解きたい問題 今回解きたい方程式は次のようなものです。 次の $u(x, t)$ にかんする偏微分方程式を与えられた条件のもとで解いてください。 $$ \frac{\partial^2 u}{\partial t^2} = (x + 1)\frac{\partial^2 u}{\partial x^2} + xe^{-t};\quad 0\le x\le 1, \quad 0\le t< \infty $$ 初期条件: $u(x, 0) = \sin \pi x, \frac{\partial u}{\partial t}(x, 0) = 0$ 境界条件: $u(0, t)= 0, u(1, t) = 0$ 方程式を解くプログラムをFortranで実装する こちらのページで解説されているように方程式を差分化して数値計算で答えを求めるプログラムを作成します。 Fortranで実装すると次のよ
はじめに 前回の記事では、1/4円の積分から円周率を求めるプログラムを使って、doループとファイルの書き出しというFortranを使った計算をするときに最も基本的でよく使うであろう機能を紹介しました。 その時には、積分計算の際に使われる分割数については、分割数が書かれただけのテキストファイルを用意し、結果を出力するファイルの名前については、プログラム本体に書いて指定していました。 しかし、実際の計算では、設定すべき変数の数が膨大になる場合があります。前回のような運用では行き詰まること必至です。前回のような書式のテキストファイルで変数の値を与える場合、何行目にどの変数の値を書いておく、というのを覚えておかなければならないですし、設定した値をあとから見直すのも難しいでしょう。 このような場合、namelistという機能を使うと便利です。ある決められた書式で書くことで、たくさんの変数の値を簡単に
Juliaを使っていると、時々Arpack_jllみたいな、jllと名のついたパッケージを見たことはありませんか? 大抵、何らかのパッケージをインストールする時に依存関係としてjllのついたパッケージが入っていると思います。 実は、このjllとついたパッケージ、Julia言語ではない他の言語で書かれたコードがコンパイルされたものなのです。インストールする時にはOSに合わせて自動でバイナリがダウンロードされます。 これを実現するのは、 BinaryBuilder.jl https://github.com/JuliaPackaging/BinaryBuilder.jl というパッケージです。 私は https://www.youtube.com/watch?v=3IyXsBwqll8 これを見て存在を知りました。 どうやら、Dockerを使うことで、Mac、Windows、Linuxの様々な
PythonとFORTRANの連携: パフォーマンスと柔軟性の融合 こんにちは、皆さん。今回は、PythonとFORTRANを連携させ、お互いの利点を最大限に活かしてプログラミングを行う方法に焦点を当ててみたいと思います。FORTRANの高い数値計算性能とPythonの柔軟性を組み合わせ、効率的で高速なプログラミングを実現しましょう。 1. PythonからFORTRANサブルーチンを呼び出す まずは、PythonからFORTRANのサブルーチンを呼び出す例を見てみましょう。FORTRANのコードをコンパイルして共有ライブラリを生成し、Pythonからそれを呼び出します。 FORTRANのサブルーチン(add.f90) ! FORTRANのコード(add.f90) SUBROUTINE ADDITION(A, B, RESULT) REAL, INTENT(IN) :: A, B REAL
Docker Composeeを用いた環境構築 環境構築に使用するDockerfileとdocker-compose.ymlを以下の様に作成します。Docker Composeは本来複数のコンテナを起動し、コンテナ間でネットワークを構築する環境構築に便利なアプリケーションですが、筆者の場合Makeの様な使い方をしていることが多い様に思います。Dockerfileは一部過去の公式コンテナイメージの中身を参考に作成しました。cuDNN、PyCUDA、OpenCL、PyOpenCLはNVIDIA HPC SDKには含まれていない為、CUDA10.1版の公式コンテナイメージをベースにインストールする方法を採用しています。また、コンテナにSSHでログイン出来る様に、ログインパスワードをビルド時に引数として渡して設定出来る様にしています。 2020/9/21追記: 今回の構築では、最終的クライアント端
ネット界隈で、幾つかのマイクロベンチマークを根拠にJuliaがCやFortranと同等かそれ以上の速度が出ると言う主張を見かけるのだが、比較する前に条件をよく揃えていない事、条件は揃えたが特異なところだけを見ていることがあるので、比較するとき、比較結果を見るときは気をつけて欲しい。 1. 局地的にJuliaが速い場合もあるが、差は小さい 昨日、見かけたのは、モンテカルロ法で円周率を計算するベンチマーク。JuliaとUNIX/Linuxで代表的なCコンパイラgccの生成バイナリの速度を比較して、Juliaがgccの何倍も速い、Juliaがgccに圧勝、gccはダメだと言うような論が主張されていた。色々な意味でダメ比較になっている。 利用している乱数生成アルゴリズムが異なる。揃えないといけない。 標本サイズ10⁶だけ比較しており、標本サイズを変えてみていない。 gccがダメと言うのであれば、c
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本記事について 競技プログラミングサイトAtCoderではプログラミング初心者のためにC++入門 AtCoder Programming Guide for beginners (APG4b)というC++のプログラミング教材が提供されています. 更にこれのPython版であるPython入門(Python版 APG4b)もありPython初心者への大きな助けとなっています. 本記事は本家APG4bのFortran版となっており, Fortran初心者でも本記事を読めば実際のコンテストでFortranを使えるようになることを目的としていま
[English/日本語] この記事は、Fortran Advent Calendar 2023の13日目の記事として書かれています。 【計算速度比較】 Fortran vs Julia vs Python (ルンゲクッタ法を例に) このページでは、Fortran, Python, Juliaの計算速度を比較します。世間では、Pythonは遅いという話や、JuliaはFortranと同程度に速いという話をよく目にしますが、言語間の計算速度速度の比較の際に、高度に最適化されたライブラリーを呼んで比較が行われたり、特定の言語で書かれたコードのみを最適化して比較を行ったりなどして、必ずしも多くのユーザーにとって意味のある比較が行われていないように思われます。そこで今回は、1次元調和振動子に対するNewtonの運動方程式をRunge-Kutta法を用いて解くという比較的単純な問題に対して、Fort
演習 大学院入試問題[数学]II 姫野 俊一 https://bookmeter.com/books/233806 のFORTRANプログラムを動かそうとして出たエラー群。 この記事は、fortranに限定して記載し、 fortranに再び馴染むために、打ち間違いなどを記録して、どういうコンパイルエラーがでるかを 確認するために記録しようとしていました。 論理は別記事にする予定で、演算子などあまり深く考えずに入力していました。 使った資料は第一版で、文字形(font)が読みにくい上に、印刷がかすれていて、文字が判別しにくく、コンパイルエラーが出ないと誤植か、誤入力かの判定ができない状態。 30年前の印刷の書籍で、文字形も1とIが判定しずらく、KとRも見間違え。 -と=は単純な打ち間違い(シフトの押すタイミングがずれて)。 まだ、もうすこしプログラムがあり、順次追加します。 統計のプログラム
Fortran 時代からある発想でつくるビッグデータ用の高速かつコンパクトな【自然数インデックス】をざっくり紹介 します。 はじめに この記事は、Fortran 時代からある発想の組み合わせでつくる高速なインデックスである【自然数インデックス】の紹介です。原理と構成、応用、そして実装についてざっくりと雰囲気がわかる解説です。読んだだけで、検証レベルでも面白い実装ができるように書いてあるつもりです。ぜひ、最後まで、お読みください。 自然数インデックスの対象は、レコード(行)、カラム(項目)からなる表形式(以下テーブルと呼びます)のデータです。おおよそCSVデータだと思っていいです。最近は、10GBを越して、項目数が数千もあるようなCSVはよくあります。そういったビッグデータになっているCSVを高速に扱うのが自然数インデックスです。さらに、全項目にインデックス付きでも圧縮可能で、コンパクトにな
はじめに Mac OS XでFortranを使う場合,大体はgfortranをインストールすれば事足ります.gfortranのインストールはMacPortsが使えるため,非常に簡単です.しかし今回f2cが必要になり,少しインストールに戸惑ったので備忘録. 環境 OSX 10.10.3 インストール手順 調べていたところ,まさにFortran Compiler Installation Instructions for OS Xというドンピシャな記事があり,しかもインストールのためのシェルスクリプトも記載してあったので,これを試しました. #! /bin/csh setenv INSTALL /usr/local curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く