問題タブ [totalview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
308 参照

arrays - OpenMP を有効にするとインテル Fortran の文字ポインターが破損する

かなり大きなコード (天気予報モデル) の Intel Fortran 互換性に取り組んでいます。インテル Fortran (およびインテル Fortranのみ) では、一部の文字データがスクランブルされてループし、文字ポインターがそれを指しているように見えます。最終的な文字には 0 と 9 しか含まれていません。文字列の内容cは単純"00:00:00:16 (whitespace padding....)"です。

(デッド) OpenMP コードをインクルードし、コンパイラ フラグ使用するたびに発生する問題を再現することができました。-fopenmp私はここで何が起こっているのか少し迷っています。次の最小再現器でプログラミング エラーを検出できますか? そうでない場合は、コンパイラのバグを報告すると思います。

再生器

ミニマル.f90

メイクファイル

フォート版

コンパイルして実行

..

..

以前の分析、この質問のコメント チェーンを理解するためだけにここに

問題のループ

モジュールでのptr_cの指定

デバッガーに表示されるデータ (TotalView)

実行時のデータ

コンパイラ コマンド

アップデート

最新の Intel コンパイラ バージョンで同じことを試しました。

結果はまだ間違っていますが、違います! 今回はすべての文字をゼロにします。

最新のインテル

最新のインテル - 配列の始まり

更新 2

最小限の再現ツール (以下を参照) を使用して問題を再現しようとしましたが、これまでのところうまくいきません。つまり、この方法で実行してもエラーは表示されません。ただし、興味深い点が 1 つあります。TotalView では、配列の最初のアドレスがわずかに異なって表示されます。

作業配列ポインタを使用

cが入力された時点でデバッガーに正しく表示されますが、入力に問題があるに違いないと思いますgrpcast_set_c

sample.conf

0 投票する
1 に答える
51 参照

fortran - TotalView のビジュアライザーに複雑なデータを送信するにはどうすればよいですか?

複雑なデータの大規模な配列を利用している従来の Fortran コードを定期的にデバッグする必要があり、利用可能な最良のオプションは TotalView です。うまく機能するデータを表示するための独自のビジュアライザーを作成しました (ここの TotalView の指示に従って)。デフォルトのものよりも柔軟で、複雑なデータを取り込んで表示する機能がありますが、TotalView は視覚化パイプを介して複雑な配列を送信しません。

絶対値を取得するためだけに追加のデバッグ配列を使用してコードを再コンパイルすることなく、TotalView で複雑なデータを表示できるようにする方法はありますか?

たとえば、次の短い例のようなコードの場合、 Fortran で別の配列を作成することもできますが、実際には停止して変数を調べたいだけですmy_arr

小さな配列の場合、式として次のようなものを使用できます。

しかし、それは非常に大きなものでは機能しません.TotalViewはメモリについて不平を言います.

TotalView 8.13 を使用しています。