Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - trurl

Страницы: 1 [2] 3 4 ... 9
16
Блин, скопировал не оттуда. locsRead должно быть вместо n, или наоборот.

17
Тест для Ulm
MODULE tulm;
IMPORT SYSTEM, StdIO,InOut;
VAR
    inf:StdIO.FILE;
    inbuf: ARRAY [0..1023] OF CARDINAL;
VAR
n : CARDINAL;
ok:BOOLEAN;
BEGIN
ok := StdIO.Fopen(inf, "input", StdIO.read, FALSE);
IF ok THEN
locsRead := 1023;
ok := StdIO.Fread(SYSTEM.ADR(inbuf), 4, locsRead ,inf);
IF ok THEN
InOut.WriteCard(locsRead,8);   InOut.WriteLn;
END;
ok := StdIO.Fclose(inf);
ELSE
InOut.WriteString("open fail");   InOut.WriteLn;
  END;
END tulm.
gm2 tulm.mod -flibs=ulm,pim

18
По-всякому. А на Ext4 ничего не открывает.

19
Хм, на FAT32 все работает, даже XDS.

20
32 бита.
Я уже дошел до си и fopen.  Там тоже  -1 и гуглить "Value too large for defined data type".


21
Попробовал через FIO, получил
this file (input) was not successfully opened.

22
Пишут
#RTS: unhandled exception #1: IOException.notAvailable Readили
EXCEPTIONS.mod:57:3:IOChan: ChanId specified is invalid in RAISE

23
Оказывается, xds под линуксом не умеет работать с файлами > 2GB :-(. Программы просто падают при первой же попытке чтения.
И у gm2 такая же фича, по крайней мере с библиотеками ISO.

24
Это не для моего :-). Мне кажется bucketsort с фиксированными корзинами должен на таких задачах страдать.

25
Интересно, а срди тестов есть распределения с малой дисперсией?

26
Да, а многопоточное решение по производительности не отличимо в этом тесте от однопоточного.

Что очень странно. Единственное объяснение, которое я могу придумать - все уперлось в диск. А наблюдаемая разница на моем нетбуке - это потому что проц совсем дохлый.
Для внешней сортировки всегда полезнее иметь несколько дисков, чем несколько процессоров.

27
То есть выходит, что чтобы и читать и писать, нужно использовать openedforrandom. Т.е., вероятно, использовать не SeqFile, а RndFile.
Я надеялся, что SeqFile как-то оптимизирван для последовательного чтения. Но похоже, там банально вызывается какой-нибудь fread/fwrite без буфферизации. Попробовал еще на аде. Там та же петрушка, только ещё медленнее раза в 2-3.

28
Да! Еще надо поставить либу pth - если система дебианоподобная, то так: apt-get install  libpth-dev
О! Поставил и заработало, даже собирать не пришлось.
Некоторые особенности сразу вылезли. Например, строку-константу  нельзя индексировать.

29
Насколько я понимаю, проблема в чем-то вроде, что файл был открыт c флагом O_WRONLY а надо было с O_RDWR. Это если на позиксно-сишный язык переводить.
[/quote]
Ну да. Но там же написано
SeqFile.OpenWrite(spill[spno], name, SeqFile.raw+SeqFile.read+SeqFile.old, res);

30
Вот тебе и стандарты ISO. :-( Сейчас еще обнаружил, что в xds CARD16, CARD32..., а в gm2  CARDINAL16, CARDINAL32...
Пробовал gm2 из пакета поставить, вроде установилось, но не работает.

Страницы: 1 [2] 3 4 ... 9