parpool('Processes') 実行時に "Invalid character code sequence detected" が発生する

お世話になっております。
現在 MATLAB R2024b (Windows 11 Pro 23H2) 環境にて、以下のような問題が発生しております。
  • parpool('Processes') 実行時に "Invalid character code sequence detected" が発生
  • parcluster('Processes') 実行時点でも同様の例外が出るため、プロファイル構造の読み込みそのものが失敗していると考えられます
  • 試した対処:
  • TEMP, TMP を ASCII フォルダに変更して起動
  • AppData\Roaming\MathWorks\MATLAB\R2024b のリセット
  • ユーザーアカウントを英数字のみで新規作成して試行
  • Windows の UTF-8 ロケール有効化
  • MATLAB R2023a → R2023b → R2024b へのアップグレード
  • 他のPC(同じユーザー名)では同じ設定で正常動作確認済
これらをすべて実行したうえで、現在も parpool('Processes') に失敗しており、内部の構成ファイルまたは非公開バグの可能性を疑っています。
可能であれば、プロファイル定義の完全リセット方法、またはクラッシュの原因となっているファイルパス等について技術的なご助言をお願いできれば幸いです。

 Akzeptierte Antwort

Kojiro Saito
Kojiro Saito am 16 Apr. 2025
既にお調べいただいたように、こちらは下記のフォルダーパスに日本語などマルチバイト文字がある場合に生じるエラーです。
>> tempdir
>> prefdir
>> matlabroot
>> !hostname
ご質問に書かれている情報の他に、下記を順番にご確認ください。
  1. matlabrootコマンドでリターンされるMATLABのインストールフォルダーに日本語などが含まれていないでしょうか。
  2. Processesのクラスタープロファイルに含まれるパスの情報に日本語などが含まれていないでしょうか。MATLABのメニュー「並列」→「クラスターの作成と管理」をクリックして開く「クラスタープロファイルマネージャー」の画面から「Processes」のプロファイルのプロパティをご確認ください。JobStorageLocationAdditionalPathsに日本語文字がある場合は変更してみてください。
  3. 過去のジョブファイルのフォルダーの削除をお試しください。「C:\Users\<ユーザー名>\AppData\Roaming\MathWorks\MATLAB\local_cluster_jobs\R2024b」にProcessesプロファイルのジョブファイルが残っている可能性があるので、このフォルダー毎削除をお試しください。

10 Kommentare

瑛士
瑛士 am 22 Apr. 2025
Verschoben: Kojiro Saito am 22 Apr. 2025
お世話になっております。
MATLAB R2024b にて parpool('Processes') 実行時に "Invalid character code sequence detected" のエラーが発生します。
以下の対策はすべて実施済みです:
  • matlabroot パス:英語・ASCIIパス確認済(C:\Program Files\MATLAB\R2024b)
  • JobStorageLocationC:\Temp\MATLAB_JobStorage に明示設定
  • local_cluster_jobs\R2024b のフォルダ削除済
  • 新規英数字アカウントでの再試行も実施
  • parpool("threads") は正常動作
また,完全アンインストール後再インストールしましたが治りませんでした。
お忙しいところ恐縮ですが、詳細な調査・ご確認をお願いできますと幸いです。
承知しました。dbstopコマンドでデバッグをお試しいただけますか。
dbstop if error
をコマンドウィンドウで実行後に
parpool('Processes')
を実行します。
エラーが出るとデバッガーが停止するので
dbquit
でデバッガーを終了します。
MException.last
を実行して最後のエラー内容を出力します。
message、cause、stackのプロパティを確認してどの行で何が原因かが分かると思います。
瑛士
瑛士 am 22 Apr. 2025
お世話になっております。
以前ご案内いただいた「dbstop if error」によるデバッグを試し、以下のような結果が得られましたのでご報告いたします。
---
■ 実行コマンド:
dbstop if error
parpool('Processes')
■ 結果(エラー発生後に MException.last を実行):
identifier: 'std:exception'
message: 'Invalid character code sequence detected.'
stack: [0×1 struct](空の構造体)
---
よろしくお願いいたします。
他にはこちらの回答にあってまだ試していない下記のコマンドではエラーが発生しますでしょうか?
parallel.Settings
瑛士
瑛士 am 22 Apr. 2025
>> parallel.Settings
ans =
Parallel Settings Information
DefaultProfile: Processes
Profiles and Components:
Profiles: [1x5 parallel.settings.Profile]
SchedulerComponents: [1x2 parallel.settings.SchedulerComponent]
ProjectComponents: [0x0 parallel.settings.ProjectComponent]
こうなりましたがよくわかりません。
他にもクラスタープロファイルが存在していますね。クラスタープロファイルの名前を下記で確認できますが、
a = parallel.Settings;
a.Profiles.Name
Processes以外の他の4つのクラスタープロファイル名では並列プールの実行はできますでしょうか?
parpool('プロファイル名')
各プロファイル名で実行しました。以下の通りになります。
>>parpool('local')
'Process' プロファイルを使用して並列プール(parpool)を起動中...
Invalid character code sequence detected.
>> parpool('processes')
'Processes' プロファイルを使用して並列プール (parpool) を起動中...
Invalid character code sequence detected.
>> parpool('Processes')
'Processes' プロファイルを使用して並列プール (parpool) を起動中...
Invalid character code sequence detected.
>> parpool('Threads')
'Threads' プロファイルを使用して並列プール (parpool) を起動中...
20 個のワーカーをもつ並列プールに接続されています。
ans =
ThreadPool のプロパティ:
NumWorkers: 20
Busy: false
FileStore: [1x1 parallel.FileStore]
ValueStore: [1x1 parallel.ValueStore]
>> parpool('threads')
次を使用中のエラー: parpool (108)
並列プールを作成できません。同時実行される並列プールを同じ MATLAB セッションで複数作成することはサポートされないためです。既存のプールを削除するには、delete(gcp('nocreate'))
見たところThreadsはできている状態は変わらず,Processはできていないようです。
Threadsでの並列プールが起動するなら、parforなどの処理でMATLAB本体や一部Toolboxの関数は対応していますので、そちらを使うのも一手です。
Processesの並列プールでのInvalid character code sequence detectedのエラーはどこかに非英数字文字が含まれているためだと思われます。
下記の実行結果で日本語文字が含まれていないか、今一度ご確認をお願いできますでしょうか。
tempdir
prefdir
matlabroot
!hostname
parallel.internal.general.HostNameUtils.getLocalCanonicalHostName
瑛士
瑛士 am 23 Apr. 2025
Kojiro Saito さん、本当にありがとうございました!
ホスト名に日本語が含まれていたのが原因だったとは思いもよりませんでした。
ご指摘いただいた内容を確認し、PC名をアルファベットに変更したところ、
無事に `parpool('Processes')` が正常に起動するようになりました!
長い時間悩んでいた問題がようやく解決し、とても感動しています。
丁寧で的確なご回答、心から感謝いたします。今後ともよろしくお願いいたします!
@瑛士さん
ホスト名 (PC名)が原因だったのですね。!hostnameで最初の方に確認されたと思っていたので、違う可能性かなと考えてしまいました。
無事に解決して良かったです。回答の採用もありがとうございました!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!