Асинхронное и многопоточное программирование в MQL - страница 23
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Объясните мне чем не подходит opencl. В терминале же реализована возможность писать код opencl, а это и есть многопоточность. Я хочу для себя понять в чем различия того многопотока о котором тут пишут и данной фишки.
Видео карт нет на VPS серверах, или очень не рентабельно если они есть ))
Да даже у большинства юзеров на локалке, видюшки не поддерживают opencl ))
Не говоря уже о сложности написания самого кода под opencl
Вариант да, есть, но для очень узкого круга лиц.
Видео карт нет на VPS серверах, или очень не рентабельно если они есть ))
Да даже у большинства юзеров на локалке, видюшки не поддерживают opencl ))
Не говоря уже о сложности написания самого кода под opencl
Вариант да, есть, но очень узкому кругу лиц.
На процессоре opencl тоже работает. Просто выбираешь устройство, которое будет выполнять код. Это не только для видеокарт технология. На серверах я знаю, что с видюхами беда.
А вот то, что opencl и на процессорах работает, не знал. Всё не как не доберусь до статьи Рената почитать про opencl.
Тут тоже проскакивал пост про opencl, но всех программистов не посадишь на opencl, штатные методы задач из коробки, как то юзабельней смотрятся ))
Получается opencl работает на любых процессорах? Или тоже зависит от модели?
А вот то, что opencl и на процессорах работает, не знал. Всё не как не доберусь до статьи Рената почитать про opencl.
Тут тоже проскакивал пост про opencl, но всех программистов не посадишь на opencl, штатные методы задач из коробки, как то юзабельней смотрятся ))
Получается opencl работает на любых процессорах? Или тоже зависит от модели?
Вроде как да, на интеловских и на амд работать должен, надо только драйвера прставить. Я на амд пробовал, работало.
Получается всё таки какой то процент зависимости есть, или от модели процессора или от драйверов.
Это не всем может подойти, к примеру тем кто распространяет(продаёт) свои работы.
Есть тут люди, которым важна переносимость программы, на мой взгляд это тоже важный параметр.
А opencl умеет работать с пользовательскими dll?
т.е. асинхронно вызывать экспортируемые функции из dll ?
Был был штатный класс для работы с задачами, можно было бы вызывать свои функции из dll так же асинхронно.
То есть штатный функционал куда юзабельней получается, и более доступен в написании кода.
Очень жаль, что мы так и не услышали от начальника транспортного цеха - какую конкретно задачу Вы хотите реализовать многопоточно? Нарисуйте простенькую блок-схему предполагаемого решения задачи.
Вы упорно пытаетесь втиснуть в МКЛ задачи для которых он изначально не предназначен. От слова совсем. Есть готовые решения - посмотрите ZeroMQ который имеет АПИ практически ко всем ЯП. Более того добрый человек Ding Li разработал библиотеку для использования ZeroMQ с MQL4/5 с множеством примеров. Почитайте тему в форуме по этой теме с практическим примерами кодов.
Что Вы (топик стартер) толчете воду в ступе? Или Вы тоже привязаны к маркету?
Удачи
А opencl умеет работать с пользовательскими dll?
т.е. асинхронно вызывать экспортируемые функции из dll ?
Был был штатный класс для работы с задачами, можно было бы вызывать свои функции из dll так же асинхронно.
То есть штатный функционал куда юзабельней получается, и более доступен в написании кода.
Вызываете функцию ДЛЛ. Создаете в ДЛЛ поток и передаете ему данные, отсоединяете поток и забываете о нем - он сам завершится выполнив свою задачу. При отсоединении потока в ДЛЛ, поток терминала освобождается. Весь процесс занимает, полагаю, меньше миллисекунды. Сужу по тому, что даже не отсоединяя поток, процесс записи в БД составляет 4-5 мс. Ну, а 60 тиков/мин достаточно, чтобы не грустить об асинхронном вызове из терминала.
Очень жаль, что мы так и не услышали от начальника транспортного цеха - какую конкретно задачу Вы хотите реализовать многопоточно? Нарисуйте простенькую блок-схему предполагаемого решения задачи.
Вы упорно пытаетесь втиснуть в МКЛ задачи для которых он изначально не предназначен. От слова совсем. Есть готовые решения - посмотрите ZeroMQ который имеет АПИ практически ко всем ЯП. Более того добрый человек Ding Li разработал библиотеку для использования ZeroMQ с MQL4/5 с множеством примеров. Почитайте тему в форуме по этой теме с практическим примерами кодов.
Что Вы (топик стартер) толчете воду в ступе? Или Вы тоже привязаны к маркету?
Удачи
Сторонние решения стараюсь не использовать.
Для своей сетевой задачи я уже нашёл решение, осталось его изучить, применить и не ипать мозг.
Но тут есть программисты, которым тоже нужны не блокирующие вызовы и асинхронность.
Вот и предложил внедрить функционал в штатную поставку языка. А это уже на усмотрение разработчиков, главное идея, и она здравая.
Почему вы считаете что терминал не предназначен для внедрения EventLoop ? Тем более от слова совсем...
Локальные агенты по какому алгоритму выполняются? Вероятно же в пуле потоков? Кто ими управляет, распределяет задачи?
Значит подобный алгоритм уже есть в терминале, почему бы его не использовать для расширения функционала?
Дать программистам асинхронный режим написания кода.
Я за идею, если она не кому не нужна асинхронность, ну что сказать, я сожалею только, что многие застряли в одном потоке.
Вызываете функцию ДЛЛ. Создаете в ДЛЛ поток и передаете ему данные, отсоединяете поток и забываете о нем - он сам завершится выполнив свою задачу. При отсоединении потока в ДЛЛ, поток терминала освобождается. Весь процесс занимает, полагаю, меньше миллисекунды. Сужу по тому, что даже не отсоединяя поток, процесс записи в БД составляет 4-5 мс. Ну, а 60 тиков/с достаточно, чтобы не грустить об асинхронном вызове из терминала.
Вот, спасибо за ещё одну идею, dll писать могу по местным статьям, но к сожалению в них не описана процедура точки входа, инициализации, выделения памяти, создание потока и т.д.
Сколько не искал литературу на эту тему, не могу найти как правильно работать с точкой входа. Если есть где инфа по этому поводу дайте пожалуйста знать.
Или если сможете научить, то с удовольствием приму знания.
Я не учился на программиста, всё изучаю сам, по этому не пинайте меня зануду ))
Объясните мне чем не подходит opencl. В терминале же реализована возможность писать код opencl, а это и есть многопоточность. Я хочу для себя понять в чем различия того многопотока о котором тут пишут и данной фишки.