From ilyin_mikhail на inbox.ru Wed Aug 1 09:04:02 2012 From: ilyin_mikhail на inbox.ru (=?UTF-8?B?TWlraGFpbCBJbHlpbg==?=) Date: Wed, 01 Aug 2012 09:04:02 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiw==?= Message-ID: <1343797442.787455137@f78.mail.ru> Привет, рассылка! Хотелось добавить пару слов к предыдущему сообщению. Помимо теории и практики конструирования компиляторов в реализованной оптимизации пригодился почти все имевшиеся знания и опыт: - Unix/Linux админство; - сборка ПО из исходников, работа со сборочными скриптами; - профилировка ПО; - понимание архитектуры машин i386/x86_64; - анализ дизассемблерных листингов; - работа в отладчике gdb на уровне исходного кода; - awk + shell scripting; - умение программировать на Си. Так же в начале работы были важны вопросы: как подступиться к новой работе, новому проекту, какой выработать подход и методологию? О всём об этом можно будет побеседовать и пообщаться в ближайщее время. Если не получится в эту субботу, всегда можно всё повторить позже. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From alexeypetrunev на gmail.com Wed Aug 1 22:27:16 2012 From: alexeypetrunev на gmail.com (alexeypetrunev) Date: Wed, 01 Aug 2012 22:27:16 +0400 Subject: [P&AM Lab] =?koi8-r?b?7MXUzsnFIMvMwdPT2Q==?= In-Reply-To: <5017BF3D.7070005@komitex.ru> References: <5017BF3D.7070005@komitex.ru> Message-ID: <1343845636.28206.1.camel@trash.local> Всем привет. Было бы очень интересно все послушать. В Втр, 31/07/2012 в 15:19 +0400, Grigoriy A. Sitkarev пишет: > Приветствую всех. > > Есть предложение встретиться в субботу или на неделе. > > У нас скоро начало учебного года, стоит подумать о том, как начать > пиар-кампанию по набору новичков. Кроме того, если появится желание у > какой-то части посещающих лабораторию, мы можем за одно-два занятия > изложить основы арифметики с плавающей точкой IEEE 754 и поставить > какие-то практические эксперименты. Это окажется весьма полезным на > будущее, я думаю, а включать такой курс в течении года, скорее всего, > бессмысленно, так как новички совершенно ничего не поймут, а остальные > будут заняты своими проектами и дипломами. > > Кроме того, есть Миша Ильин, которому удалось осуществить оптимизацию > весьма специфического сервера БД. В связи с этим, хочется от него лично > услышать комментарии в подтверждение нашей принципиальной и жёсткой > позиции о необходимости изучения теории и конструирования компиляторов и > интерпретаторов, не смотря на все ?скептические? замечания от различных > ?экспертов? по поводу актуальности этой задачи. > > Вроде бы всё, жду возражений и предложений. > > -- > Г.А. > > _______________________________________________ > Lab mailing list > Lab на wiki.syktsu.ru > http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/lab From sitkarev на komitex.ru Wed Aug 1 22:30:58 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Wed, 01 Aug 2012 22:30:58 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiw==?= In-Reply-To: <1343845636.28206.1.camel@trash.local> References: <5017BF3D.7070005@komitex.ru> <1343845636.28206.1.camel@trash.local> Message-ID: <501975E2.8000209@komitex.ru> Предлагаю в субботу 4-го августа, 15.30-16.00 в нашей каморке. Что по курсу IEEE 754? Готовить надо или всё это по прежнему кроме одного-двух человек никому не интересно? -- Г.А. 01.08.2012 22:27, alexeypetrunev пишет: > Всем привет. > Было бы очень интересно все послушать. > From alexeypetrunev на gmail.com Wed Aug 1 23:30:32 2012 From: alexeypetrunev на gmail.com (alexeypetrunev) Date: Wed, 01 Aug 2012 23:30:32 +0400 Subject: [P&AM Lab] =?koi8-r?b?7MXUzsnFIMvMwdPT2Q==?= In-Reply-To: <501975E2.8000209@komitex.ru> References: <5017BF3D.7070005@komitex.ru> <1343845636.28206.1.camel@trash.local> <501975E2.8000209@komitex.ru> Message-ID: <1343849432.28355.3.camel@trash.local> Хотелось бы узнать что делать с IEEE 754 когда нет FPU? В Срд, 01/08/2012 в 22:30 +0400, Grigoriy A. Sitkarev пишет: > Предлагаю в субботу 4-го августа, 15.30-16.00 в нашей каморке. > > Что по курсу IEEE 754? Готовить надо или всё это по прежнему кроме > одного-двух человек никому не интересно? > > -- > Г.А. > > 01.08.2012 22:27, alexeypetrunev пишет: > > Всем привет. > > Было бы очень интересно все послушать. > > > > _______________________________________________ > Lab mailing list > Lab на wiki.syktsu.ru > http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/lab From sitkarev на komitex.ru Thu Aug 2 00:01:44 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Thu, 02 Aug 2012 00:01:44 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiw==?= In-Reply-To: <1343849432.28355.3.camel@trash.local> References: <5017BF3D.7070005@komitex.ru> <1343845636.28206.1.camel@trash.local> <501975E2.8000209@komitex.ru> <1343849432.28355.3.camel@trash.local> Message-ID: <50198B28.3020301@komitex.ru> Хороший вопрос. Если нужна именно IEEE 754 арифметика, то тогда её нужно эмулировать программно. Это можно делать как на уровне компилятора, который будет подменять инструкции языка своими библиотечными функциями, или же на уровне ОС. В последнем случае задача ОС перехватывать исключения при вызове инструкций FPU и перенаправлять их на программный обработчик. Если же нужна арифметика с вещественными числами вообще и их область значений имеет ограниченный динамический диапазон, практически полезной окажется арифметика с фиксированной точкой. Она работает поверх обычной целочисленной арифметики. Для этого какая-то часть битов целого числа выделяется для хранения дробной части. Уместно заметить, что на компьютерах считали и до появления FPU. -- Г.А. 01.08.2012 23:30, alexeypetrunev пишет: > Хотелось бы узнать что делать с IEEE 754 когда нет FPU? > From sitkarev на komitex.ru Thu Aug 2 00:02:16 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Thu, 02 Aug 2012 00:02:16 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiw==?= In-Reply-To: <1343849432.28355.3.camel@trash.local> References: <5017BF3D.7070005@komitex.ru> <1343845636.28206.1.camel@trash.local> <501975E2.8000209@komitex.ru> <1343849432.28355.3.camel@trash.local> Message-ID: <50198B48.9070709@komitex.ru> Хороший вопрос. Если нужна именно IEEE 754 арифметика, то тогда её нужно эмулировать программно. Это можно делать как на уровне компилятора, который будет подменять инструкции языка своими библиотечными функциями, или же на уровне ОС. В последнем случае задача ОС перехватывать исключения при вызове инструкций FPU и перенаправлять их на программный обработчик. Если же нужна арифметика с вещественными числами вообще и их область значений имеет ограниченный динамический диапазон, практически полезной окажется арифметика с фиксированной точкой. Она работает поверх обычной целочисленной арифметики. Для этого какая-то часть битов целого числа выделяется для хранения дробной части. Уместно заметить, что на компьютерах считали и до появления FPU. -- Г.А. 01.08.2012 23:30, alexeypetrunev пишет: > Хотелось бы узнать что делать с IEEE 754 когда нет FPU? > From lonely.ruyk на mail.ru Fri Aug 3 11:45:51 2012 From: lonely.ruyk на mail.ru (ruyk) Date: Fri, 3 Aug 2012 11:45:51 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiy4=?= Message-ID: <20120803114551.580d1cbe@Lonely> Интересно будет про всё послушать) И про оптимизацию и про арифметику с плавающей точкой. я буду. From sitkarev на komitex.ru Sun Aug 5 03:10:56 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Sun, 05 Aug 2012 03:10:56 +0400 Subject: [P&AM Lab] =?utf-8?b?0JrRgNCw0YLQutC40Lkg0LrQvtC90YHQv9C10LrRgiwg?= =?utf-8?b?0LrQu9Cw0YHRgSA0INCw0LLQs9GD0YHRgtCw?= Message-ID: <501DAC00.7000303@komitex.ru> Всех приветствую. Для тех, кто хотел, но не смог прийти в субботу, а также для тех, кто был, но боится всё позабыть к следующей встрече, я сделал очень сжатый конспект по основным пунктам прошедшего занятия. Ближайшая встреча предварительно намечена на следующую субботу, 11 августа. Всем успехов, -- Г.А. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: floatingpoint.ps.gz Type: application/x-gzip Size: 164348 bytes Desc: отсутствует URL: From ilyin_mikhail на inbox.ru Sun Aug 5 18:11:53 2012 From: ilyin_mikhail на inbox.ru (=?UTF-8?B?TWlraGFpbCBJbHlpbg==?=) Date: Sun, 05 Aug 2012 18:11:53 +0400 Subject: [P&AM Lab] =?utf-8?b?0J3QtSBzcWwg0LHQsNC30Ysg0LTQsNC90L3Ri9GFIChH?= =?utf-8?b?VC5NLCBDYWNoZSk=?= Message-ID: <1344175913.154124539@f252.mail.ru> Привет, рассылка! В прошедшую субботу был рассказ про оптимизацию работы GT.M. Параллельно был кратко описан механизм адресации данных в подобных системах, а так же упоминалось какие модели данных в них возможно реализовать. Я обещал выслать ссылки на неплохие статьи с рисунками. Русская переводная статья: http://blogerator.ru/page/nosql-vvedenie-v-teoriju-bd Оригинальная статья в pdf: http://www.mgateway.com/docs/universalNoSQL.pdf ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sitkarev на komitex.ru Tue Aug 7 05:16:05 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Tue, 07 Aug 2012 05:16:05 +0400 Subject: [P&AM Lab] =?utf-8?b?R05VIHRyb2ZmINC80LDQutGA0L7RgSDQtNC70Y8g0YA=?= =?utf-8?b?0LjRgdC+0LLQsNC90LjRjyDQsdC40L3QsNGA0L3Ri9GFINGH0LjRgdC10Ls=?= Message-ID: <50206C55.9060107@komitex.ru> Приветствую всех. Если кто-то обратил внимание, в предыдущей портянке по форматам с плавающей точкой показывались поля чисел в двоичном виде. Для того, чтобы такие числа можно было удобно и быстро набирать в troff, я написал очень простой макрос DGBOX. Если кому-то интересно, можете попробовать его использовать. .de DGBOX . nr @wb \w'\\$1' . nr @zw \w'0' . nr @dx (\\n[@wb]u + 1m) . nr @dy (\\n[rst]u - \\n[rsb]u + 1m) \h'.5m'\ \h'-.5m'\v'(.5m - \\n[rsb]u)'\ \D'l \\n[@dx]u 0'\ \D'l 0 -\\n[@dy]u'\ \D'l -\\n[@dx]u 0'\ \D'l 0 \\n[@dy]u'\ \h'.5m'\v'-(.5m - \\n[rsb]u)'\ \\$1\ \h'.5m'\c . if !'\\$2'' \|\\$2 . rr @wb . rr @zw . rr @dx . rr @dy .. Чтобы нарисовать число из трёх полей, макрос можно вызвать внутри пары DS/DE вот так: .DS C .DGBOX 0 .DGBOX 111111111111111 .DGBOX 0000000000000000 , .DE В последнем вызове DGBOX передаётся два аргумента. Второй аргумент опциональный, обычно там ставят знак препинания (точку или запятую). Если макрос поместить в файл, то можно его подключить так: .so dgbox.tmac Файлы во вложении. -- Г.А. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: out1.ps Type: application/postscript Size: 11351 bytes Desc: отсутствует URL: ----------- следущая часть ----------- An embedded and charset-unspecified text was scrubbed... Name: dgbox.tmac URL: From sitkarev на komitex.ru Wed Aug 8 02:46:23 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Wed, 08 Aug 2012 02:46:23 +0400 Subject: [P&AM Lab] LZW simple in-memory compression library Message-ID: <50219ABF.30003@komitex.ru> Приветствую всех. Я давно забыл, что у нас появилась весьма компактная и простая библиотечка алгоритма сжатия LZW, про который мы однажды говорили на нашей лаборатории в связи с обсуждением онлайн-алгоритмов. Код можно взять или через svn $ svn co http://wiki.syktsu.ru/svn/libslzw или смотреть на нашем websvn через HTTP http://wiki.syktsu.ru/websvn/listing.php?repname=libslzw&path=%2F&sc=0 Большинство известных реализаций LZW не работают in-memory, а предназначены для сжатия/распаковки файлов. Нам нужна была компактная версия алгоритма, который мог бы распаковывать и запаковывать поток данных онлайн, по мере их поступления. Примеры использования даны в encode.c и decode.c. Функции сжатия и распаковки весьма похожи на семантику iconv(3). Обе функции принимают 5 аргументов: контекст, указатель на буфер с входными данными и указатель на из размер, указатель на буфер с выходными данными и указатель на его размер. Такой псевдо-пример, иллюстрирующий сжатие: #define BUFSIZE 2048 unsigned char buffer[BUFSIZE]; unsigned char buffer2[2*BUFSIZE]; const unsigned char *in; unsigned char *out; size_t insz, outsz; int count, rc; ... while ((count = read(0, buffer, sizeof(buffer))) > 0) { in = buffer; insz = count; while (insz > 0) { out = buffer2; outsz = sizeof(buffer2); rc = lzw_encode(&enc, &in, &insz, &out, &outsz); if (rc == LZW_OK || rc == LZW_NOSPACE) { /* Здесь buffer2 содержит (buffer2 - out) * сжатых байт, которые можно отсылать. */ ... } else { if (rc == LZW_NOMEM) { /* Не хватило памяти. */ ... } else { /* Какое-то другое безобразие... */ ... } } } ... } Финальная посылка сжатых данных должна заканчиваться вызовом lzw_end_of_data(): rc = lzw_end_of_data(&enc, &out, &outsz); assert(rc == LZW_OK); /* В буфер теперь добавлена завершающая последовательность. */ С распаковкой всё проще, пример decode.c в помощь. Кому интересны детали реализации: исходники снабжены достаточно подробными комментариями. В любом случае следует сначала разобрать как работает LZW. Дальше всё встаёт на свои места. Алгоритм проверялся на наборе данных Calgary и показал результат коэффициента сжатия ~2.11. Это, безусловно, не самый лучший результат, но нас он практически устраивал, учитывая простоту реализации и незамысловатый алгоритм сброса словаря. Сценарий тестовой программы приведен в test.sh. Всего наилучшего, -- Г.А. From sitkarev на komitex.ru Fri Aug 10 01:04:01 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Fri, 10 Aug 2012 01:04:01 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiywgMTEt0LUg?= =?utf-8?b?0LDQstCz0YPRgdGC0LA=?= Message-ID: <502425C1.5010509@komitex.ru> Приветствую всех. В субботу, 11-го августа, мы планируем провести следующее занятие по арифметике с плавающей точкой IEEE 754. Если всё будет хорошо, мы успеем затронуть следующие аспекты: 1. Сколько десятичных знаков содержат float и double. 2. Округления в IEEE 754 и корректное округление в операциях с плавающей точкой. 3. Исключения IEEE 754. 4. FPU микропроцессоров Intel и MIPS. Если я всё правильно понимаю, больше на субботу у нас докладчиков нет? Какие-то может быть будут вопросы или пожелания? Пока время до субботы есть, всё обсуждаемо. Для тех, кто не смог посетить предыдущее занятие, в одном из предыдущих постов был краткий конспект предыдущего доклада. Желательно с ним ознакомиться. -- Г.А. From sitkarev на komitex.ru Fri Aug 17 05:11:20 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Fri, 17 Aug 2012 05:11:20 +0400 Subject: [P&AM Lab] =?utf-8?b?0JrQvtC90YHQv9C10LrRgiDQv9C+IElFRUUsINC60Ls=?= =?utf-8?b?0LDRgdGBIDExINCw0LLQs9GD0YHRgtCw?= Message-ID: <502D9A38.30503@komitex.ru> Приветствую всех. К сожалению, не удалось уместить всё на трёх страницах. Материал не окончательный, будет продолжение. Пожелания, исправления, найденные опечатки и неточности -- присылайте. Надеюсь, до субботы вы полистаете и прочитаете всё, что здесь написано. 18-го августа, как обычно, буду рад всех снова увидеть в 15.30-16.00 в 242-й аудитории. -- Г.А. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: floatingpoint.pdf Type: application/pdf Size: 298383 bytes Desc: отсутствует URL: From nateford на inbox.ru Sun Aug 19 10:10:16 2012 From: nateford на inbox.ru (Hermes Conrad) Date: Sun, 19 Aug 2012 10:10:16 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiywgMTgg0LA=?= =?utf-8?b?0LLQs9GD0YHRgtCw?= Message-ID: <20120819101016.73a89976@rlyeh.domain.name> Всем доброго утра. Вместе с письмом отправляю вчерашие программы на ассемблере (возможно, кому-нибудь понадобится). From sitkarev на komitex.ru Sun Aug 19 10:27:39 2012 From: sitkarev на komitex.ru (Grigiry A. Sitkarev) Date: Sun, 19 Aug 2012 10:27:39 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiywgMTgg0LA=?= =?utf-8?b?0LLQs9GD0YHRgtCw?= Message-ID: Все хорошо... Но где же программы? -- Г.А. Hermes Conrad wrote: Всем доброго утра. Вместе с письмом отправляю вчерашие программы на ассемблере (возможно, кому-нибудь понадобится). _______________________________________________ Lab mailing list Lab на wiki.syktsu.ru http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/lab ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nateford на inbox.ru Sun Aug 19 15:12:32 2012 From: nateford на inbox.ru (Hermes Conrad) Date: Sun, 19 Aug 2012 15:12:32 +0400 Subject: [P&AM Lab] =?utf-8?b?0JvQtdGC0L3QuNC1INC60LvQsNGB0YHRiywgMTgg0LA=?= =?utf-8?b?0LLQs9GD0YHRgtCw?= In-Reply-To: <20120819101016.73a89976@rlyeh.domain.name> References: <20120819101016.73a89976@rlyeh.domain.name> Message-ID: <20120819151232.447f9705@rlyeh.domain.name> Ой, прикрепить забыл. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: test1.S Type: application/octet-stream Size: 648 bytes Desc: отсутствует URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: test2.S Type: application/octet-stream Size: 1214 bytes Desc: отсутствует URL: From sitkarev на komitex.ru Mon Aug 20 16:48:07 2012 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Mon, 20 Aug 2012 16:48:07 +0400 Subject: [P&AM Lab] x86 assembler cheatsheet Message-ID: <50323207.2050608@komitex.ru> Приветствую всех. Я сделал такой листок в формате удобном для распечатки. Лучше принтер с двусторонней печатью, но можно и один лист два раза засунуть. Этот листок можно держать у себя на столе, пока разбираешься с ассемблером. Там есть всякие полезные подсказки. Всё весьма кратко и только самое необходимое. Главное, что можно даже без ссылок на документацию Intel получить простенькие рабочие программы, с которых начнутся эксперименты. Может быть стоит его сунуть потом и на наш сайт? Всего наилучшего, -- Г.А. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: x86cheatsheet.pdf Type: application/pdf Size: 87151 bytes Desc: отсутствует URL: