Решил проблему обращения по указателю. Все проще простого - метод надо было сделать static. Обнаружил другой косяк - вместо 2 потоков создается 4, что неправильно.
Сделал вот такую уонструкцию : void (__thiscall PointerClass::*pOperatorFunc)(void* argv, int& disp); , а как обратиться к этому указателю - так и не придумал. PointerClass - это класс от template, нужен для того, чтобы нормально создавались указатели. Голова уже сонная-сонная...
А еще не знаю, как правильно указать template-функцию при создании потока. Ужас, в общем.
Сломались очки. Конечно же, не вовремя: я читал МСДН про наследование. Хорошо, что сохранил линзы, хоть и просроченные. Завтра пойду покупать новые, а то эти портятся уже.
Сделал пробы ради простенькую прогу, умножающую квадратную матрицу саму на себя. Размер матрицы: 1000 на 1000 float'ов. Операции с числами с плавающей точкой самые долгие. Прога умножает 2 раза, замеряя время операции - первый раз с использованием 2х ядер, второй раз - с одним. Результаты:
Dual-Core Time: 8625 ms Single-Core Time: 12797 ms Ratio: 67%
Ratio - отношение времени работы двух ядер к времени работы одного ядра. Проц - AMD Athlon64 X2 Dual Core 4600+, частота ядер - 2,41 GHz.
Приехал домой после полуторамесячного отсутствия. Прибыл в Уфу еще в субботу, но как-то не добирался до дайра. Съездил в Томск просто великолепно, вот только рассказывать уже устал. Отчитался по практике, повидался с нашими... видел преподов... прикольно, я, оказывается, соскучился. Воевал с компом, пытаясь поставить на лицензионку WinXP Home. Операционка так и не встала нормально - дохнет в сетапе при установке оборудования, причем с BSOD 0x0A: IRQL_NOT_LESS_OR_EQUAL. Иногда были и PAGE_FAULT_IN_NONPAGED_AREA. Однако, одна из попыток поставить оказалась успешной, но все равно в ней все постоянно падало с той же ошибкой. А потом я наткнулся в Сети на забавную статейку, откуда узнал, что у матерей K8N на чипе nForce4 есть один серьёзный недостаток - кривые дрова, причем как у АСУСа, так и моего МСИ. Кривость заключается в том, что при полной установке дров вместе с nForce IDE SW driver'ом, начинали происходить странности вроде отмирания сервиса IPSec при отключении встроенного nVidia-фаерволла или умирании какого-нить Oblivion то с матюгами на внутренюю ошибку, то с тем же BSOD, то еще бог ведает чем. При этом в event-логах матерился Win32Time на невозможность подключиться к серверу. А причина глюков оказалась совсем забавная - в дровах nVidia есть утечка памяти, которая постепенно копится до краха на уровне ядра. Последствия очевидны - BSOD с каким-нить туманным сообщением о неправильном IRQL или PAGE_FAULT, причем рушился как раз IPSec, хотя ума не приложу, каким местом он там падал? Решается проблема гениально: чтобы не падал IPSec, надо всего-навсего... не ставить расширение для IDE! Апплодисменты гениальности решения! Правда каким местом связаны эти драйверы - все равно не понимаю. Может быть, близкое адресное пространство? Надо бы поглядеть, в каком порядке и когда ОСь грузит эти дрова. Хотя фиг - ставить это кривое расширение я не собираюсь. =)) Потом поставил WinXP Pro. Почему ее - просто инстальник у нее не SP2. И даже не SP1. Сервис-паки лежат на том же блине, хоть и гемор, зато все "железно". Пока что комп пашет. Игрухи продолжают падать, но хотя бы могу чего-нить попрограммить. А посему - начал писать что-то вроде ядра для своего курсача. А когда думал, как назвать проект, почему-то вспомнился волшебник Мерлин из легенд про короля Артура. Так теперь этот курсач и называется.
Кстати, по курсачу сделаны наброски псевдокода для одной половины курсача и выведены идеи алгоритмов для второй половины. Только нужен г-н М. А., чтобы одобрить выбранные подходы.