Этот исходник взят с GSL-CBLAS-Examples
#cat gsl-cblas.c
Описание функций из библиотеки GSL находиться здесь.
#include <stdio.h>
#include <gsl/gsl_cblas.h>
int
main (void)
{
int lda = 3;
float A[] = { 0.11, 0.12, 0.13,
0.21, 0.22, 0.23 };
int ldb = 2;
float B[] = { 1011, 1012,
1021, 1022,
1031, 1032 };
int ldc = 2;
float C[] = { 0.00, 0.00,
0.00, 0.00 };
/* Compute C = A B */
cblas_sgemm (CblasRowMajor,
CblasNoTrans, CblasNoTrans, 2, 2, 3,
1.0, A, lda, B, ldb, 0.0, C, ldc);
printf ("[ %g, %g\n", C[0], C[1]);
printf (" %g, %g ]\n", C[2], C[3]);
return 0;
}
Процедура просто перемножает две матрицы. Ее описание тут.
Чтобы откомпиллировать этот исходник командой
#gcc -o gsl-cblas gsl-cblas.c -lblas
нам необходимы файлы libblas.so и libblas.so.
#apt-file search /usr/lib/libblas.so
refblas3: usr/lib/libblas.so.3
refblas3: usr/lib/libblas.so.3.0
refblas3-dev: usr/lib/libblas.so
# ls -al /usr/lib/libblas.so
lrwxrwxrwx 1 user user 12 2009-08-06 14:44 /usr/lib/libblas.so -> libblas.so.3
# apt-file search /usr/include/gsl/gsl_cblas.h
libgsl0-dev: usr/include/gsl/gsl_cblas.h
libgsl0-dev: usr/include/gsl/gsl_cblas.h
Вывод команды ./gsl-cblas:
[ 367.76, 368.12
674.06, 674.72 ]
Этот исходник можно откомпиллировать также с помощью команды:
#gcc -Wall gsl-cblas.c -lgslcblas
Для успешной компилляции нужен установленный пакет libgsl0:
#ls -al /usr/lib/libgslcblas.so
lrwxrwxrwx 1 user user 20 2009-12-17 16:45 /usr/lib/libgslcblas.so -> libgslcblas.so.0.0.0
#ls -al /usr/lib/libgslcblas.so.0.0.0
-rw-r--r-- 1 user user 188936 2006-11-19 03:26 /usr/lib/libgslcblas.so.0.0.0
#apt-file search /usr/lib/libgslcblas.so.0.0.0
libgsl0: usr/lib/libgslcblas.so.0.0.0
суббота, 29 мая 2010 г.
Как найти пакеты, от которых зависит во время сборки данный бинарный файл в Дебиан
Делаем
$ objdump -p /usr/bin/myProgramm | grep NEEDED
Это вывод файлов, от которые нужны при постройке myProgramm. Пусть это будет такой вывод:
NEEDED libblas.so.3
NEEDED libc.so.6
Далее каждого такого файла делаем команду dpkg -S:
$ dpkg -S /usr/lib/libblas.so.3
Вывод будет такой:
refblas3: /usr/lib/libblas.so.3
Более развернутый вывод будет у команды
$ apt-file search /usr/lib/libblas.so.3
refblas3: usr/lib/libblas.so.3
refblas3: usr/lib/libblas.so.3.0
То есть при построении программы myProgramm понадобиться библиотека libblas.so.3 из пакета refblas3
$ objdump -p /usr/bin/myProgramm | grep NEEDED
Это вывод файлов, от которые нужны при постройке myProgramm. Пусть это будет такой вывод:
NEEDED libblas.so.3
NEEDED libc.so.6
Далее каждого такого файла делаем команду dpkg -S:
$ dpkg -S /usr/lib/libblas.so.3
Вывод будет такой:
refblas3: /usr/lib/libblas.so.3
Более развернутый вывод будет у команды
$ apt-file search /usr/lib/libblas.so.3
refblas3: usr/lib/libblas.so.3
refblas3: usr/lib/libblas.so.3.0
То есть при построении программы myProgramm понадобиться библиотека libblas.so.3 из пакета refblas3
четверг, 29 апреля 2010 г.
Временные задержки (таймауты) в Sendmail
Sendmail позволяет изменять timeout-ы для разных фаз почтовой транзакции. Значения по умолчанию некоторых таймаутов нелепо велики по сравнению с рекомендуемыми RFC значениями. Вот возможные значения таймаутов, установив которые в конфигурационном файле senmail-a, можно будет разгрузить систему:
По умолчанию у таймаутов стоят такие значения:
Следующие таймауты неопределены:
define(`confTO_ICONNECT', `15s')dnl
define(`confTO_CONNECT', `3m')dnl
define(`confTO_HELO', `2m')dnl
define(`confTO_MAIL', `1m')dnl
define(`confTO_RCPT', `1m')dnl
define(`confTO_DATAINIT', `1m')dnl
define(`confTO_DATABLOCK', `1m')dnl
define(`confTO_DATAFINAL', `1m')dnl
define(`confTO_RSET', `1m')dnl
define(`confTO_QUIT', `1m')dnl
define(`confTO_MISC', `1m')dnl
define(`confTO_COMMAND', `1m')dnl
define(`confTO_STARTTLS', `2m')dnl
По умолчанию у таймаутов стоят такие значения:
confTO_INITIAL [5m]
confTO_CONNECT [0]
confTO_ACONNECT [0]
confTO_HELO [5m]
confTO_MAIL [10m]
confTO_RCPT [1h]
confTO_DATAINIT [5m]
confTO_DATABLOCK [1h]
confTO_DATAFINAL [1h]
confTO_RSET [5m]
confTO_QUIT [2m]
confTO_MISC [2m]
confTO_COMMAND [1h]
confTO_IDENT [5s]
confTO_FILEOPEN [60s]
confTO_LHLO [2m]
confTO_AUTH [10m]
confTO_STARTTLS [1h]
confTO_CONTROL [2m]
confTO_QUEUERETURN [5d]
confTO_QUEUEWARN [4h]
confTO_HOSTSTATUS [30m]
Следующие таймауты неопределены:
confTO_ICONNECT Timeout.iconnect
confTO_QUEUERETURN_NORMAL
confTO_QUEUERETURN_URGENT
confTO_QUEUERETURN_NONURGENT
confTO_QUEUERETURN_DSN
confTO_QUEUEWARN_NORMAL
confTO_QUEUEWARN_URGENT
confTO_QUEUEWARN_NONURGENT
confTO_QUEUEWARN_DSN
confTO_RESOLVER_RETRANS
confTO_RESOLVER_RETRANS_FIRST
confTO_RESOLVER_RETRANS_NORMAL
confTO_RESOLVER_RETRY
confTO_RESOLVER_RETRY_FIRST
confTO_RESOLVER_RETRY_NORMAL
Апгрейд с lenny на sqeeze
Аналогичные действия делаем при переходе с etch на lenny.
#sudo vim /etc/apt/sources.list
Заменить каждое слово "lenny" на слово "squeeze" ("etch" на "lenny").
Ну и наконец:
#sudo aptitude update
#sudo aptitude install apt dpkg aptitude
#sudo aptitude full-upgrade
#sudo vim /etc/apt/sources.list
Заменить каждое слово "lenny" на слово "squeeze" ("etch" на "lenny").
Ну и наконец:
#sudo aptitude update
#sudo aptitude install apt dpkg aptitude
#sudo aptitude full-upgrade
понедельник, 5 апреля 2010 г.
Диагностика установки сервиса samba
Приведем стандартную последовательность поиска причин проблем связанных с настройкой сервера samba.
Пусть samba дает доступ к ресурсу:
[sharedFolder]
path=/sharedFolder
1)Просканировать порты 137, 138 и 139. Открыты ли они.
2)Применить утилиту testparm для проверки синтаксиса файла конфигурации smb.conf.
3)Проверить, запущены ли процессы nmbd и smbd.
3)Проверить сетевое соединение и TCP/IP. Это делают утилиты ping, ipconfig /all, ipconfig, etc.
4)Проверить разрешение имен DNS. Это делается утилитами nslookup или dig. При невозможности доступа к ДНС проверить нет ли в файле конфигурации smb.conf записи dns proxy = no.
5)Отобразить перечень ресурсов для общего использования на сервере:
#smbclient -L nameSambaServer
6)Проверить верно ли работает преобразование NetBIOS-имени:
#nmblookup -B nameSambaServer __SAMBA__
7)
#nmblookup -B x.x.x.x '*'
Определяются имена всех компьютеров, которые отвечают под адресом х.х.х.х.
#nmblookup -B x.x.x.x nameClient
Ищется конкретный компьютер с именем nameClient из списка найденного первой командой.
8)Проверить, какие компьютеры отвечают на запросы NetBIOS. Все компьютеры должны выдать сообщение "got a positive name query response". Если ни один компьютер не выдаст своего IP-адреса, то это ошибка в широковещательном адресе. Можно добавить в конфигурационный файл опцию interface. Если компьютер находится в другой подсети, то воспользоваться ключем -B.
9)
#smbclient //nameSambaServer/sharedFolder
Если все в порядке, то происходит smb-приглашение: smb>_
Возможные причины ошибки bad password
10)Получить список ресурсов сервера:
#net view \\nameSambaServer
11)Внимательно посмотреть на параметры host allow и host deny.
12)Проверить файлы /etc/hosts.allow /etc/hosts.deny.
13)
#net use x: //nameSambaServer/sharedFolder
Дожно появиться сообщение "command completed successfully".
Пусть samba дает доступ к ресурсу:
[sharedFolder]
path=/sharedFolder
1)Просканировать порты 137, 138 и 139. Открыты ли они.
2)Применить утилиту testparm для проверки синтаксиса файла конфигурации smb.conf.
3)Проверить, запущены ли процессы nmbd и smbd.
3)Проверить сетевое соединение и TCP/IP. Это делают утилиты ping, ipconfig /all, ipconfig, etc.
4)Проверить разрешение имен DNS. Это делается утилитами nslookup или dig. При невозможности доступа к ДНС проверить нет ли в файле конфигурации smb.conf записи dns proxy = no.
5)Отобразить перечень ресурсов для общего использования на сервере:
#smbclient -L nameSambaServer
6)Проверить верно ли работает преобразование NetBIOS-имени:
#nmblookup -B nameSambaServer __SAMBA__
7)
#nmblookup -B x.x.x.x '*'
Определяются имена всех компьютеров, которые отвечают под адресом х.х.х.х.
#nmblookup -B x.x.x.x nameClient
Ищется конкретный компьютер с именем nameClient из списка найденного первой командой.
8)Проверить, какие компьютеры отвечают на запросы NetBIOS. Все компьютеры должны выдать сообщение "got a positive name query response". Если ни один компьютер не выдаст своего IP-адреса, то это ошибка в широковещательном адресе. Можно добавить в конфигурационный файл опцию interface. Если компьютер находится в другой подсети, то воспользоваться ключем -B.
9)
#smbclient //nameSambaServer/sharedFolder
Если все в порядке, то происходит smb-приглашение: smb>_
Возможные причины ошибки bad password
- Пользователь отсутствует в перечне valid users
- Параметр password level недостаточно высок
- Неверный параметр path в файле smb.conf
- Отсутствует файл smbpasswd
10)Получить список ресурсов сервера:
#net view \\nameSambaServer
11)Внимательно посмотреть на параметры host allow и host deny.
12)Проверить файлы /etc/hosts.allow /etc/hosts.deny.
13)
#net use x: //nameSambaServer/sharedFolder
Дожно появиться сообщение "command completed successfully".
Подписаться на:
Сообщения (Atom)