

質問のタイトル通り,Golangの関数の並列化などについてなのですが,

[Matrix_inverse_program](https://github.com/yutatouyama/Parallel_distributed_processing/blob/master/inverse3.2.1.go)

で,SIZE(行列の次元数)を少なくとも30以上にして実行すると,  
生成された逆行列の要素が±InfやNaNになっていたりします.  
これは,逆行列が存在しない場合にも無理矢理逆行列を生成させているからなのか,  
float64型の限界値を超えているからなのか,分からないです.

また,逐次で実行した場合と並列化したプログラムとでの実行時間の差が,次元数1000において10回ずつ実行して,ほとんどないか逐次の方が早いという結果になっています.  
channelの通信によるオーバーヘッドで実行効率が低下していると思っているのですが,  
この問題の解決策を模索中でまだ解決できていません.

疑問に対する答えや,プログラムの改善案などを思いつきましたら,教えて頂けると幸いです.  
何卒宜しくお願い致します.


CC BY-SA 3.0
2015-08-12T12:53:13.727
14331
2015-08-12T12:53:13.727
10883
question
go
Golang - 関数の並列化などについて