LINUX.ORG.RU

Сообщения minipooh

 

Qt4: использование connect в многопоточных приложениях

Форум — Development

Есть класс

class A : public QwtPlot
{
   Q_OBJECT
   ...

protected slots:
   void conversionMouseCoordinates(int x, int y);
}

class B : public QwtPlotZoomer
{
   Q_OBJECT
   ...

signals:
   void sendMouseCoordinates(int x, int y);
}

A::A(QWidget *parent)
        :QwtPlot(parent)
{
   ...
   b = new B(this->canvas());
   connect(b, SIGNAL(sendMouseCoordinates(int, int)), this, SLOT(conversionMouseCoordinates(int, int)));
}

Всё работает нормально. При наследовании класса А дополнительно и от QThread:

class A : public QwtPlot, public QThread
{
   Q_OBJECT
   ...
}

Выдаётся:

ошибка: ссылка на ‘connect’ противоречива

С чем это связано? Как это победить?

minipooh
()

воспроизведение лицензионных DVD

Форум — Desktop

Всем доброго!

Столкнулся с проблемой воспроизведения лицензионных DVD-видео дисков с защитой от копирования! Система Kubuntu10.04 плейер DragonPlayer! Диск попросту не воспроизводится, даже DVD-шное меню не появляется! Копировать понятное дело тоже не получается, но и доступа на чтение нет даже через sudo! Права стоят 40555 владелец я группа -1! Каким медиапроигрывателем можно посмотреть или конвертировать в *.avi подобные диски?

minipooh
()

Ограничение скорости канала Ethernet

Форум — Desktop

Есть 2 компа на которых работают 2 проекта, с одного (Linux Gentoo Calculate 10.2) на другой (может быть как Linux Kubuntu 10.04, так и Windows XP) с определенной периодичностью гоняться некоторые данные по Ethernet каналу (соединение точка-точка). Необходимо проверить работоспособность всей системы при скорости канала в 64 Кб/с.

Какой самый простой и быстрый способ ограничить канал?

Есть ли гуёвые средства?

minipooh
()

настройка 32 битного цвета?

Форум — Development

на машине используется

Kubuntu 9.10 X86_64-бит,

видюха GeForce 9800 GT,

моник Samsung SyncMaster,

для видюхи поставили драйвер NVIDIA Driver 185.18.36.

Пакет: xserver-xorg

Версия: 1:7.4+3ubuntu10

В прикладном графическом приложении написанном на Qt4.5.6 неправильно отображаются цвета - вместо плавных переходов (градиентов) на границах цветов происходит попиксельное отображение цвета и цвет отображается с гораздо меньшей яркостью. Предполагаем что связано это с невозможностью включения режима 32 битного цвета (RGB24 + AlphaChannel).

1. Как вообще узнать текущий цветовой режим?

2. Как установить 32 битный цветовой режим?

minipooh
()

Быстрая сортировка

Форум — Development

Подскажите алгоритм быстрой сортировки массива размерности N = const вещественных чисел в известном диапазоне (n > x[i] > k). И, если есть, его реализацию на С++ (может в составе математических библиотек).

minipooh
()

Проблема обновления Kubuntu 9.04 до 9.10

Форум — Desktop

Обновил через CD (раздел /home не трогал). После перезагрузки и входа в учетную запись, сначала появляется рабочий стол Kubuntu 9.10 а потом (практически сразу же) черный экран без возможности что либо добавить или изменить, так же отсутствуют мои панели, присутствовавшие в 9.04. Проги можно запустить только по Alt+F2. В чем может быть проблема?? Что нужно изменить в настройках чтобы вернуть мой настроенный рабочий стол как в 9.04, при это не трогая раздел /home??

minipooh
()

boost::thread VS openMP!!! Кто кого???

Форум — Development

В программе есть большой внешний цикл (~10000 итераций) в который вложены еще некоторые более мелкие циклы с мат вычислениями (~2500 итераций), при попытке раскидать внешний цикл на несколько потоков столкнулись с проблематичной синхронизацией потоков (слишком сильная зависимость между итерациями), поэтому решили «раскидывать» на потоки вложенный цикл.
Но встали перед вопросом чем воспользоваться boost::thread или openMP?

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

Написал 2 идентичные по объему операций программки:

На openMP:
_______________________________________
#include <iostream>
#include <omp.h>
#include <time.h>
#define Npar 4
#define Nmas 1000
int main(int argc, char* argv[])
{
float* a = new float[Nmas];
float* b = new float[Nmas];
float* c = new float[Nmas];
for (int k = 0; k < 100000; k++)
{
#pragma omp parallel shared(a, b, c) num_threads(Npar)
{
int myid = omp_get_thread_num();
for (int i = myid; i < Nmas; i += Npar)
{
a[i] = (float) i;
b[i] = a[i] * a[i];
c[i] = 0.3 * a[i] - b[i] / a[i];
}
}
}
delete[] a;
delete[] b;
delete[] c;
std::cout << clock() << std::endl;
return 0;
}
_________________________________________

И на boost::thread :
_________________________________________
#include <boost/thread/thread.hpp>
#include <iostream>
#include <time.h>
#define Nmas   1000
#define Npar   4
using namespace std;

void proga(int ind, float* a, float* b, float* c)
{
for (int i = ind; i < Nmas; i += Npar)
{
a[i] = (float) i;
b[i] = a[i] * a[i];
c[i] = 0.3 * a[i] - b[i] / a[i];
}
}

int main(int argc, char* argv[])
{
float* a = new float[Nmas];
float* b = new float[Nmas];
float* c = new float[Nmas];
for (int j = 0; j < 100000; j++)
{
boost::thread my_thread1(&proga, 0, a, b, c);
boost::thread my_thread2(&proga, 1, a, b, c);
boost::thread my_thread3(&proga, 2, a, b, c);
boost::thread my_thread4(&proga, 3, a, b, c);
my_thread1.join();
my_thread2.join();
my_thread3.join();
my_thread4.join();
}
delete[] a;
delete[] b;
delete[] c;
std::cout << clock() << endl;
return 0;
}
________________________________________

Компилятор g++-4.3, ОС Kubunta 9.04,
проц. CPU Intel Core 2 Quad Q8300 2.5ГГц.

Откомпилил обе проги запустил проверить кто же быстрее и на сколько, и в ответ получил замечательные данные:
(программы запускал по 10 раз каждую привожу средние данные)
по данным ф-ции clock():
boost 8700000 (8.7c)
openMP 8800000 (8.8c)

по данным ф-ции time:
boost
real 0m8.588s
user 0m4.616s
sys 0m4.176s
__________________
openMP
real 0m7.438s
user 0m6.828s
sys 0m3.132s
__________________

В сфязи с чем у меня возникает 4 вопроса:
1. кому верить time или clock???
2. так кто же быстрее boost или openMP???
3. для каких случаев обычно используют тот или другой метод распараллеливания???
4. может я что-то не так делаю?

minipooh
()

не работает openMP

Форум — Development

Написал простенькую програмку с распараллеливанием
собрал откомпилил,
но распараллеливания нет.
Программка выглядит так:
--------------------------------
#include <iostream>
#include <omp.h>
int main(int argc, char* argv[])
{
#pragma omp parallel num_threads(4)
{
std::cout << «процесс №» << omp_get_thread_num() << " Hello World!!!\n";
}
return 0;
}
-------------------------------
Makefile:
-------------------------------

CC = g++-4.3
CXXFLAGS = -fopenmp

MPI_test : main.o
$(CC) $(CXXFLAGS) -o MPI_test main.o

main.o: main.cpp
$(CC) -c main.cpp
-------------------------------
Программа компилируется без ошибок (естественно) но выводит одно
сообщение только от главного процесса:
-------------------------------
процесс №0 Hello World!!!
-------------------------------
Использую Kubuntu 9.04 и gcc 4.3.3

Судя по описаниям работы с openMP выложенным в интернете моя программа
должна выдать результат типа:
-------------------------------
процесс №0 Hello World!!!
процесс №1 Hello World!!!
процесс №2 Hello World!!!
процесс №3 Hello World!!!
-------------------------------
ну или наподобие того (может в другом порядке может вперемешку).
Подскажите почему не происходит распараллеливание?

minipooh
()

Выбор WM

Форум — Desktop

Посоветуйте легкий, удобный, настраиваемый WM Ынтерпрайз уровня. Кеды, гном, XFCE не предлагать.

minipooh
()

Создание библиотеки QT

Форум — Development

Создал класс для отображения на основе QT и QWT.
1. Как мне оформить этот класс в виде подключаемой библиотеки *.so?
2. Как статически в нее залинковать QT и QWT, что бы они не
требовались при работе на других машинах?

minipooh
()

проблема прав доступа в ssh

Форум — Desktop

На хосте 2 пользователя А и Б. К пользователю Б через ssh имеется доступ с других компов (своеобразная шара), но при этом если для домашней директории /home/Б задаются права на запись даже для группы, то доступ к нему по ssh невозможен. Т.е. получается оригинальная "шара" либо к ней могут обращаться все кроме пользователя А на хосте, либо только пользователь А на хосте)))

Можно ли решить данную проблему??? Может нужно что то прописать в sshd_config-е??

minipooh
()

ssh и tunneling

Форум — Desktop

При попытке создать туннель так:

~$ sudo ssh -v -N -p22 -L 1300:Host_Name:1310 SSH_SRV_NAME

Идет сначала все ОК, а потом выдает:

debug1: channel 2: new [tun]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Remote: Failed to open the tunnel device.
channel 2: open failed: administratively prohibited: open failed
debug1: channel 2: free: tun, nchannels 3

channel 0 и 1 создает нормально.
Я так понимаю, что просто не находит доступа к девайсу туннеля.
Вроде он называется tun0(1...). Но в /dev его нет, есть только
/dev/net/tun но получается его мало.Сделал с него симлинк /dev/tun0 -
пофиг.
Как правильно создать или где взять это девайс tun ?
P.S.
С правами на /dev/net/tun все ОК 666 и на серваке и на клиенте.

minipooh
()

Проблема с kdevelop 4

Форум — Development

Создал проект "Simple Hello World Program"
Делаю Build, выдает

linking test (CC)
../libtool: line 821: X--tag=CC: command not found
../libtool: line 854: libtool: ignoring unknown tag : command not found
../libtool: line 821: X--mode=link: command not found
../libtool: line 988: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 989: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 2226: X-g: command not found
../libtool: line 2226: X-O2: command not found
../libtool: line 2395: Xtest: command not found
X: user not authorized to run the X server, aborting.
../libtool: line 2407: Xtest: command not found
../libtool: line 2415: mkdir /.libs: No such file or directory

Откуда берется какой-то Х ?
Почему что-то хочет создать в / ?
Как ӕто вылечить ?

minipooh
()

git и ssh

Форум — Desktop

ssh соединение устанавлено. При "git push" выдается ошибка:

Tunnel device open failed.
Could not request tunnel forwarding.

В конфигах (сервака и клиента) все параметры использования туннелинга
разрешены.

При попытке создать туннель через ssh выдает ошибку:

channel 0: open failed: administratively prohibited: open failed

Пользователь к которому пытаюсь подключиться добавлен только в группу ssh.

Как использовать git совместно с ssh, можно ли исправить данную проблему? Может нужно создать устройство типа tun0...?

minipooh
()

RSS подписка на новые темы