質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Nim

Nimは、静的型付けプログラミング言語。Pythonの生産性でありながら、C言語のような高いパフォーマンスも持ち併せます。さらに自由度の高い言語で拡張性も重視されています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

並列処理

複数の計算が同時に実行される手法

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Q&A

解決済

NimがRustやJavaやGoに比べて並行並列処理性能が高いかどうか?について

cloud9paiza
cloud9paiza

総合スコア68

Nim

Nimは、静的型付けプログラミング言語。Pythonの生産性でありながら、C言語のような高いパフォーマンスも持ち併せます。さらに自由度の高い言語で拡張性も重視されています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

並列処理

複数の計算が同時に実行される手法

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

2回答

0グッド

0クリップ

3542閲覧

投稿2020/02/24 01:48

編集2020/02/24 02:59

なお、こちらで、回答して頂けましたら、私のブログ http://aon.tokyo へ引用もしくは転載したいです。転載の許可をして下さるかどうかも記載して
頂けますと助かります。

NimがRustやJavaやGoに比べて並行並列処理性能が高いかどうか?
シングルスレッドベンチマークの参考URL:
この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)
http://h-miyako.hatenablog.com/entry/2015/01/23/060000

インメモリデータベースの開発言語にRustを選んだ理由
https://www.forcia.com/blog/001167.html

ベンチマークの結果は、最適化されたC言語の次にNimが早くその次にRust、その次にJavaやGoだと言うのは、ネットのブログを読んで存じております。
こちらにつきましては、Nimは、C言語で出来ていてコンパイル言語であるので、
スレッドは立つらしいと言う情報は得ておりますので、
マルチコア、マルチスレッド対応であるとは思いますが、
性能的な情報をもっと頂けますと助かります。

皆様お忙しいとは思いますが、
何か情報をお持ちの方、ご教授頂ければ幸いです。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2020/02/26 02:47

こちらの質問が複数のユーザーから「過去の低評価」という指摘を受けました。

Zuishin

2020/02/24 02:08

過去の質問の多くが投げっぱなしです。解決したならベストアンサーを決め、そうでないなら回答者に質問の意図が伝わったか、そして回答者の意図が自分に伝わったかを確かめ、質問を編集して情報を追記してください。
Zuishin

2020/02/24 02:12

あと、ここで複数の質問をしていますが、質問の一つ一つが大きく厚く大雑把すぎるので、複数の質問に分け、もう少し聞きたいことを絞って聞いてください。基本的にここでの質問は「一問一答で解決可能であること」が前提です。
Zuishin

2020/02/24 02:16

そして「一例として」次のように > ベンチマークの結果は、最適化されたC言語の次にNimが早くその次にRust、その次にJavaやGoだと言うのは、ネットのブログを読んで存じております。 出典も無く前提も不明な怪しげな情報を持ち出し、それを真実と扱っていますが、その真偽を確認するためにも、文脈を伝えるためにも、きちんと出典を示してください。
raccy

2020/02/24 02:32

質問は一つにしてください。関連性が薄い複数の質問全てに回答しないとベストアンサーにならないため、一つだけ知っている人でも回答しづらくなります。結果、回答が得られなくなります。
raccy

2020/02/24 02:32

あ、Zuishinさんが既に書いていたや・・・。失礼しました。
Zuishin

2020/02/24 02:46

やはり並列処理無関係なベンチです。また質問編集されているのに質問が複数あります。
cloud9paiza

2020/02/24 02:54

たしかに、こちらのベンチマークは、並列処理に無関係なベンチーマークです。 より並列処理のベンチーマーク結果の様な、情報が得られればと思いまして、 こちらに書き込みさせて頂いております。
cloud9paiza

2020/02/24 02:56

なお、過去の私の質問は、ほとんど解決済みとさせて頂きました。 ご指摘ありがとう御座います。 未解決なままが多かったです。 今後は注意しようと思います。
cateye

2020/02/24 03:08

>並行並列処理性能が高いかどうか? (環境が左右する問題だと思うので)実測して下さい。その上で、質問があれば投稿して下さい。
cloud9paiza

2020/02/24 04:36

cateyeさん 実測の方法は分かりません。しかし、その方法を質問するべきだったかも知れません。
Zuishin

2020/02/24 05:39

Java には AsyncTask があります。Nim だとスレッドプールを使うのが良いのでしょうか。そこは詳しくないので知りません。並列処理で何をしたいのかによって求められる機能が違ってくるのではないかと思います。フィボナッチよりはバブルソートの方がいいかもしれません。
cloud9paiza

2020/02/24 07:22

cateye さん リンク元は、シングルスレッドのベンチマークの様です。マルチコア、マルチスレッドでは無い様です
cloud9paiza

2020/02/24 07:29

Zuishin さん アドバイスして頂きましてありがとう御座います。結局自分でNimを含めた、複数のプログラム言語でマルチコア、マルチスレッドのプログラムを実行して実測する方法を質問しなおすしかないと思いました。 ありがとう御座いました。

回答2

0

Zuishin さん cateyeさんに回答して頂きました。ありがとう御座います。
アドバイスして頂きましてありがとう御座います。結局自分でNimを含めた、複数のプログラム言語でマルチコア、マルチスレッドのプログラムを実行して実測する方法を質問しなおすしかないと思いました。
ありがとう御座いました。

投稿2020/02/24 07:30

cloud9paiza

総合スコア68

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2020/04/26 17:52

こちらの回答が複数のユーザーから「過去の低評価」という指摘を受けました。

0

ベストアンサー

実行については、取り敢えずCとpythonのみ・・・timeコマンドしか使っていませんが^^;

text

1usr ~/Project/test % time ./a.out 2267914296 3real 1.25 4user 1.25 5sys 0.00 6usr ~/Project/test % cat t1.c 7#include <stdio.h> 8 9int fib(int n) { 10 if (n < 2) return n; 11 return fib(n - 2) + fib(n - 1); 12} 13 14int main(int argc, char *argv[]) { 15 printf("%d\n", fib(42)); 16 return 0; 17} 18 19usr ~/Project/test % time ~/anaconda3/bin/python3 t1.py 2039088169 21real 10.02 22user 10.02 23sys 0.00 24

環境
AMD Ryzen 5 1600X
Linux Mint 19.3
clang version 10

投稿2020/02/24 05:40

編集2020/02/24 05:47
cateye

総合スコア6847

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

cloud9paiza

2020/02/24 07:04 編集

cateyeさん 出来れば、Nimを含めたマルチコア、マルチスレッドのベンチーマークがあれば良かったですが、 回答して頂きましてありがとう御座います。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Nim

Nimは、静的型付けプログラミング言語。Pythonの生産性でありながら、C言語のような高いパフォーマンスも持ち併せます。さらに自由度の高い言語で拡張性も重視されています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

並列処理

複数の計算が同時に実行される手法

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。