Как удаленно вызвать программное обеспечение MATLAB на сервере Linux из настольной программы C# в Windows?

Я кодирую настольную программу на C# для Windows и некоторые программы для Matlab на сервере Linux. Как мне этого добиться - выбрать локальные данные с помощью программы C#, а затем передать данные в программы Matlab. После обработки данных на сервере Linux результаты будет отправлено в настольную программу C#? Запрос ответа

1 ответ

Решение

Я бы начал с того, чтобы попробовать следующий "рецепт". Сначала убедитесь, что у вас есть ssh доступ к серверу.

  1. Сохраните ваши данные из C# в файл в формате Matlab, я рекомендую двоичный файл, но с текстовым файлом тоже все в порядке.
  2. Скопируйте данные на сервер, используя некоторый клиент scp, например WinSCP. Это можно сделать из C#, используя Process класс для отправки команды выполнения командной строки.
  3. Отправьте удаленный вызов в вашу программу Matlab из C# с использованием некоторой библиотеки SSH (я не знаком с C#, но уверен, что это возможно). Вы можете найти опцию запуска Matlab -r полезно, чтобы запустить Matlab и вызвать скрипт.
  4. Убедитесь, что код Matlab сохраняет результаты на диск.
  5. Чтобы вернуть результаты на локальный компьютер, вы можете снова скопировать его с удаленного сервера, используя scpсамое простое, что нужно сделать, это попытаться скопировать его внутри цикла, пока копирование не будет успешным, с некоторой паузой между попытками и верхним пределом времени (в случае, если что-то пойдет не так на стороне сервера, вы не захотите ждать вечно). Если вы хотите сделать его менее "грязным", вы можете установить tcp клиент-серверное соединение между удаленным и локальным компьютером, и заставить удаленный компьютер отправлять сообщение, как только файл будет готов к копированию. Вы можете даже получить данные через tcp вместо сохранения в файл, если это не слишком много данных.
Другие вопросы по тегам