parpool('Processes') 実行時に "Invalid character code sequence detected" が発生する
You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Show older comments
0 votes
Share a link to this question
お世話になっております。
現在 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') に失敗しており、内部の構成ファイルまたは非公開バグの可能性を疑っています。
可能であれば、プロファイル定義の完全リセット方法、またはクラッシュの原因となっているファイルパス等について技術的なご助言をお願いできれば幸いです。
Accepted Answer
Kojiro Saito
on 16 Apr 2025
既にお調べいただいたように、こちらは下記のフォルダーパスに日本語などマルチバイト文字がある場合に生じるエラーです。
>> tempdir
>> prefdir
>> matlabroot
>> !hostname
ご質問に書かれている情報の他に、下記を順番にご確認ください。
- matlabrootコマンドでリターンされるMATLABのインストールフォルダーに日本語などが含まれていないでしょうか。
- Processesのクラスタープロファイルに含まれるパスの情報に日本語などが含まれていないでしょうか。MATLABのメニュー「並列」→「クラスターの作成と管理」をクリックして開く「クラスタープロファイルマネージャー」の画面から「Processes」のプロファイルのプロパティをご確認ください。JobStorageLocationやAdditionalPathsに日本語文字がある場合は変更してみてください。
- 過去のジョブファイルのフォルダーの削除をお試しください。「C:\Users\<ユーザー名>\AppData\Roaming\MathWorks\MATLAB\local_cluster_jobs\R2024b」にProcessesプロファイルのジョブファイルが残っている可能性があるので、このフォルダー毎削除をお試しください。
10 Comments
瑛士
on 22 Apr 2025
Moved: Kojiro Saito
on 22 Apr 2025
お世話になっております。
MATLAB R2024b にて parpool('Processes') 実行時に "Invalid character code sequence detected" のエラーが発生します。
以下の対策はすべて実施済みです:
- matlabroot パス:英語・ASCIIパス確認済(C:\Program Files\MATLAB\R2024b)
- JobStorageLocation を C:\Temp\MATLAB_JobStorage に明示設定
- local_cluster_jobs\R2024b のフォルダ削除済
- 新規英数字アカウントでの再試行も実施
- parpool("threads") は正常動作
また,完全アンインストール後再インストールしましたが治りませんでした。
お忙しいところ恐縮ですが、詳細な調査・ご確認をお願いできますと幸いです。
Kojiro Saito
on 22 Apr 2025
dbstop if error
をコマンドウィンドウで実行後に
parpool('Processes')
を実行します。
エラーが出るとデバッガーが停止するので
dbquit
でデバッガーを終了します。
MException.last
を実行して最後のエラー内容を出力します。
message、cause、stackのプロパティを確認してどの行で何が原因かが分かると思います。
瑛士
on 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](空の構造体)
---
よろしくお願いいたします。
Kojiro Saito
on 22 Apr 2025
parallel.Settings
瑛士
on 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]
こうなりましたがよくわかりません。
Kojiro Saito
on 23 Apr 2025
他にもクラスタープロファイルが存在していますね。クラスタープロファイルの名前を下記で確認できますが、
a = parallel.Settings;
a.Profiles.Name
Processes以外の他の4つのクラスタープロファイル名では並列プールの実行はできますでしょうか?
parpool('プロファイル名')
瑛士
on 23 Apr 2025
各プロファイル名で実行しました。以下の通りになります。
>>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はできていないようです。
Kojiro Saito
on 23 Apr 2025
Threadsでの並列プールが起動するなら、parforなどの処理でMATLAB本体や一部Toolboxの関数は対応していますので、そちらを使うのも一手です。
Processesの並列プールでのInvalid character code sequence detectedのエラーはどこかに非英数字文字が含まれているためだと思われます。
下記の実行結果で日本語文字が含まれていないか、今一度ご確認をお願いできますでしょうか。
tempdir
prefdir
matlabroot
!hostname
parallel.internal.general.HostNameUtils.getLocalCanonicalHostName
瑛士
on 23 Apr 2025
Kojiro Saito さん、本当にありがとうございました!
ホスト名に日本語が含まれていたのが原因だったとは思いもよりませんでした。
ご指摘いただいた内容を確認し、PC名をアルファベットに変更したところ、
無事に `parpool('Processes')` が正常に起動するようになりました!
長い時間悩んでいた問題がようやく解決し、とても感動しています。
丁寧で的確なご回答、心から感謝いたします。今後ともよろしくお願いいたします!
Kojiro Saito
on 23 Apr 2025
@瑛士さん
ホスト名 (PC名)が原因だったのですね。!hostnameで最初の方に確認されたと思っていたので、違う可能性かなと考えてしまいました。
無事に解決して良かったです。回答の採用もありがとうございました!
More Answers (0)
Categories
Find more on 並列計算の基礎 in Help Center and File Exchange
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)