Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 |

 

  Вопрос: Два ядра под VB6 Добавлено: 08.08.11 21:43  

Автор вопроса:  Сергей Юдин

Ответить

  Ответы Всего ответов: 69  

Номер ответа: 61
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #61 Добавлено: 16.08.11 07:42
То что вас интерисует работает так как я описал. Спросите у любого другого специалиста, он повторит вам то же самое. И обвинять меня в чем-то только потому что вам хотелось чтоб все работало по другому очень глупо, не кажется?


Надо внимательнее читать текст, т.к. я только предположил, что возможно Вы что-то не так поняли (из прочитанных Вами книжек), а не сознательно вводите нас в заблуждение, т.е. ни в чем я Вас не обвинял. А то что мне как пользователю компьютера хочется, чтобы он работал, так, как мне надо ни коим образом не является глупостью, а является техзаданием для создателей компьютеров. И сформулировал я его из общих соображений о многопоточности, т.к. вообще то многопоточность подразумевает параллельное решение разных кусков программы на множестве ядер, а не одного и того же куска. И то, что сейчас называется многопоточностью на многоядерных компьютерах это многостаночность, т.е. когда одна и та же деталь изготавливается одним рабочим на разных станках. А при многопоточности одну деталь на одном станке обрабатывают сразу несколько различных инструментов. В общем, будем считать, что поговорили и спасибо за консультацию.

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 62
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #62 Добавлено: 16.08.11 08:24
Сергей Юдин пишет:
т.к. вообще то многопоточность подразумевает параллельное решение разных кусков программы на множестве ядер, а не одного и того же куска.

Никто не запрещает решать разные куски программы паралллельно. Просто сценарий в котором к каждому элементу данных применяется одна и та же обработка очень распространен и легко реализуется.
Если же элемент данных один, и нужно распараллелить его обработку, это тоже возможно, хотя и намного сложнее, так как многие операции будут зависеть от операций, выполнявшихся ранее. Нужно будет потратить намного больше усилий для синхронизации потоков и обмена данными между ними. И при этом следить, чтоб затраты на синхронизацию были не больше того выигрыша, который дает распараллеливание.

Ответить

Номер ответа: 63
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #63 Добавлено: 16.08.11 14:12
//Я сейчас один умный вещь скажу.// Если многоядерные компьютеры созданы для многостаночной работы, то надо попытаться и использовать их в этом режиме. Как раз для решаемой мною задачи это и возможно. Ведь я создаю матрицу полного ортогонального или рототабельного плана для шести факторов, где соответственно надо выполнить 77 или 79 вычислительных экспериментов на математической модели Солнечной системы. Таким образом, запускаю программу Solsys7, создаю план (допустим ортогональный) и выполняю эксперименты с 1-го по 39-ый. А затем опять запускаю программу Solsys7, которая, как я разумею, должна запуститься уже на втором ядре, точно так же создаю план и выполняю эксперименты с 40-го по 77-ой. А т.к. данные по всем экспериментам записываются каждый в отдельный файл, то и компилировать их не надо (просто скопировать все в одну папку). Сам не ожидал, что решение будет таким простым и не надо заморачиваться с потоками для параллельного выполнения программы на двух ядрах.

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 64
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #64
Добавлено: 16.08.11 18:15
А функциональные языки не пробовали? Они проще параллелятся, т.к. нет сайд-эффектов.

Ответить

Номер ответа: 65
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #65 Добавлено: 16.08.11 20:39
А функциональные языки не пробовали? Они проще параллелятся, т.к. нет сайд-эффектов.


Нет не пробовал, т.к. даже не знаю о чем Вы говорите (а может быть за 30 лет программирования уже успел забыть). По этому, вкратце скажите, что это за языки, хотя навряд-ли я буду переделывать программу Solsys7 (даже в урезанном виде) на другой язык. Тем боле, что решение я, кажется, нашел (см. предыдущий пост). Да, еще, что такое сайд-эффект.

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 66
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #66
Добавлено: 16.08.11 21:15
Про языки функционального программирования можно тут почитать:

http://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Наиболее известные: LISP, Haskell, Erlang, F#.

"Побо́чный эффе́кт (side effect) функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычислятся разные значения. Такие функции называются недетерминированными функциями с побочными эффектами."

Если нет побочных эффектов - то программа очень легко параллелится. Потому что при программировании многопоточных приложений самый гемморой - синхронизация доступа к общим ресурсам.

Ответить

Номер ответа: 67
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #67 Добавлено: 16.08.11 22:56
Про языки функционального программирования можно тут почитать:


Спасибо, а то я уже и забыл, что LISP даже пробовал изучать лет 25 тому назад, но я все же останусь с VB6. А описание функциональных языков мне почему то показалось похожим на языки различных современных математических пакетов Maple, Statistica и т.д.

С наилучшими пожеланиями Сергей Юдин.


Ответить

Номер ответа: 68
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #68
Добавлено: 17.08.11 06:56
Последнее время функциональные языки становятся всё популярней. На Erlang'е пишут большие промышленные системы. Microsoft несколько лет назад выпустил F#, включив его поддержку в Visual Studio. Говорят что тоже неплохой язык.
Но это совсем другая парадигма, и переучиваться нелегко.

Впрочем, если уже есть много существующего кода, который нужно поддерживать и с которым нужно интегрироваться - то наверное проще что-то более понятное использовать. C#, Java.

Ответить

Номер ответа: 69
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #69
Добавлено: 17.08.11 07:22
Перечитал топик. Да, пожалуй автору могу предложить два варианта
1. Распараллелить выполнение разных экспериментов (если они независимы)
2. Для более тонкой работы (скажем, если потребуется решать задачу в сотни раз быстрее) - нанять специалиста

Ответить

Страница: 1 | 2 | 3 | 4 | 5 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам