• Сколько будет 0/0?

    okazymyrov
    @okazymyrov
    Я бы всё таки уточнил. При n стримящемся к 0, значение предела lim(n/n) стримиться к 1, а не ровно 1! Маленькое, но весомое уточнение.
  • Почему Sublime Text 2 стоит 59$?

    okazymyrov
    @okazymyrov Автор вопроса
    Ну как бы месяц назыд была скидка на 50%. Я многие программы на iPad таким образом купил или вообще бесплатно скачал.
  • Почему Sublime Text 2 стоит 59$?

    okazymyrov
    @okazymyrov Автор вопроса
    Не поверю, что на Mac нет достойного бесплатного или до 10$ редактора.
  • Почему Sublime Text 2 стоит 59$?

    okazymyrov
    @okazymyrov Автор вопроса
    Я не пойму зачем платить, да и ещё такие деньги. В большенстве случаев я пользуюсь mcedit и остальными аналогами (opensource) тоже.

    Хотя, если бы цена была приемлемой, я бы не отказался заплатить.
  • Почему Sublime Text 2 стоит 59$?

    okazymyrov
    @okazymyrov Автор вопроса
    Да, но если ты ориентируешься на прибыль, то зачем ставить такую цену? Для того, чтобы кто-то когда-то купил?

    Если just for fun, тогда да. Делай что хочешь и как хочешь.
  • Почему Sublime Text 2 стоит 59$?

    okazymyrov
    @okazymyrov Автор вопроса
    Я не считаю, а рассуждаю.

    Но раз уж такой вопрос, то поступлений было бы больше, если бы цена была ниже (личное мнение). Так как в конечном итоге все работают на прибыль…
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Сейчас так приблизительно и делается. d=0 означает завершение процесса. Т.е. слиенты, получив это значения завершаются. Посчитаенные d записываются в файл, а после парсером выписываю только те значения, которые ещё не были посчитаны. И повторяю процедуру для оставшихся d. Таким образом загружаю по максимому все процессоры.
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Спасибо за совет, подсказка действительно дельная. Однако не подходит для моего случая, так как:
    а) для одного d длительность подсчёта варьируется от 1 мин до 3 ч, т.е. после определённого времени некоторые процессоры будут отдыхать, в то время, как остальные работать;
    б) можно попасть на шаг, где все d перебируться за пару минут, т.е. несколько процессоров будут работать пару минут, остальные, например, 12 часов;
    в) на кластере процессоры не однородные, есть очень старые, а есть совсем новые.

    В принципе общя проблема описана в а). И ещё есть проблема со временем, т.е. я могу запросить 3, 6, 12 часов. Но не факт, что за это время все посчитается, поэтому мне нужно сохранять промежутучные значения, а после их вводить в программу. Я хочу автоматизировать данный процесс.
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Если сильно упростить, то есть цикл, который считает «что-то» от d=1 до d=3^10-1. Длительность цикла на одном процессоре варьируется от 1 мин до 3 ч. Нужно распаралелить цикл средствами MPI с минимальными затратами CPU/ч. Т.е. я могу запросить 4096 процессоров на t часов (до 20) и нужно чтобы они по максимому использовались. Процедуру с «запросом» можно повторить.
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Сейчас работает (вроде) так:
    int server()
    {
    	unsigned long long start = , end = ; // 1..59049
    	MPI_Status status;
    	int i=0;
    	ofstream output;
    	char file_name[FILENAME_MAX] = {};
    
    	sprintf(file_name,"./d.txt");
    
        for(d=start; d < end; d++) {
    		init_output(file_name,&output);
    		output << d << endl;
    		output.flush();
    		close_output(&output);
        	MPI_Recv(NULL, 0, MPI_UNSIGNED_LONG_LONG, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
            MPI_Send(&d,1,MPI_UNSIGNED_LONG_LONG,status.MPI_SOURCE,0,MPI_COMM_WORLD);
        }
    
        d=0;
        for(i=0;i<4095;i++) {
        	MPI_Recv(NULL, 0, MPI_UNSIGNED_LONG_LONG, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
            MPI_Send(&d,1,MPI_UNSIGNED_LONG_LONG,status.MPI_SOURCE,0,MPI_COMM_WORLD);
        }
    
    	return 0;
    }
    


    Т.е. server ждёт от всех остальных последний send и отслылает сигнал на выход (d=0).
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Спасибо за совет помогло. Только ещё вопрос, можно ли как-то узнать что просесса больше не существует?

    #include <cstdio>
    #include <vector>
    #include <mpi.h>
    
    #include "tools.h"
    
    using namespace std;
    unsigned long long d = 1;
    
    unsigned long long get_new_d(int ccpu)
    {
    	MPI_Status status;
    
        //printf("%d: Start sender\n",ccpu);
        if ( MPI_SUCCESS != MPI_Sendrecv(NULL,0,MPI_UNSIGNED_LONG_LONG,0,0,&d,1,MPI_UNSIGNED_LONG_LONG,0,MPI_ANY_TAG,MPI_COMM_WORLD,&status))
        	return 0;
    
    	return d;
    }
    
    int server()
    {
    	MPI_Status status;
    
        for(; d < 10; d++) {
        	MPI_Recv(NULL, 0, MPI_UNSIGNED_LONG_LONG, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
            MPI_Send(&d,1,MPI_UNSIGNED_LONG_LONG,status.MPI_SOURCE,0,MPI_COMM_WORLD);
        }
    
    	return 0;
    }
    
    int main(int argc, char *argv[])
    {
        int ccpu, nprocs;
    
        MPI_Init(&argc, &argv);
        MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
        MPI_Comm_rank(MPI_COMM_WORLD, &ccpu);
    
        if(ccpu == 0)
        {
        	server();
        	printf("end server\n");
        }
        else
        {
        	for(;;)
        	{
        		d=get_new_d(ccpu);
        		if(d == 0)
        			break;
        		printf("%d: %lld\n",ccpu,d);
        	}
        }
    
        MPI_Finalize();
        return 0;
    }
    


    Сейчас у меня deadlock. Сервер (0-й процесс) заканчивает заботать, а все остальные отправляют сообщения и ждут ответа…

  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    Проблема в том, что если использовать MPI_Bcast, то в каждом процессе нужно выполнять d+=1 перед MPI_Bcast. Так вот, если 2 или более процесса пришли в точку d+=1 одновременно, то не важно MPI_Bcast блокирующая или нет, в обоих процессах d будет инкрементировано на единицу, а только после разосланно. Т.е. в каждом процессе будет предыдущее d плюс 1, а нужно чтобы было предыдущее d от максимального d из всех процессов плюс 1.

    Как использовать OpenMP + MPI я знаю, проблема в том, что каждый процесс независимый, только в рамках одного процесса можно организовать глобальную переменную, использую OpenMP. Или я чего-то не понимаю?
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    MPI_Bcast не подходит без семафора. Если ли пример со связкой OpenMP + MPI?
  • Аналог глобальных переменных в MPI?

    okazymyrov
    @okazymyrov Автор вопроса
    1. Как организовать для 4096 процессов? На сколько я понял, то MPI работает P2P. Как узнать в 0-м процессе от кого пришёл запрос (т.е. кому отправлять ответ).
    2. Что будет если 2 процесса в одно и тоже время запросят значение? В примере выше это и происходит.
  • Концепция Apple в свете сборов?

    okazymyrov
    @okazymyrov
    Тогда что мешает делать 1 уровень бесплатным, а остальные продавать внутри самого приложения? В этом случае будешь получать дополнительные 30 %.
  • Выбор электронной книги, несколько вопросов

    okazymyrov
    @okazymyrov
    >> его можно заставить читать DjVu
    Конвертнуть DjVu в PDF или картинки и читать.
  • Gametag для xbox live?

    okazymyrov
    @okazymyrov Автор вопроса
    Не знаю, не пользовался. Сервисом пользуюсь только через xbox или браузер.
  • Библиотека получения данных из аудиофайлов (Python)

    okazymyrov
    @okazymyrov Автор вопроса
    Спасибо, я уже определился. Легче всего разобрать формат wave.
  • Библиотека получения данных из аудиофайлов (Python)

    okazymyrov
    @okazymyrov Автор вопроса
    За ссылку спасибо.

    >> Если разово, в audacity, да и любом другом аудиоредакторе есть функция проект-импортировать raw файл.
    >> Достаточно сохранить этот поток байт и все.
    Нет, нужно многократно.
    >> В матлабе/octave (рекомендую) wavread.
    К сожалению с матлабом не приходилось сталкиваться.
    >> mp3 я бы сделал уже из wav с помощью lame.
    Я думаю, что после конвертирования в mp3, невозможно получить исходный массив.
  • Вопросы по utorrent под linux?

    okazymyrov
    @okazymyrov Автор вопроса
    У меня проблем с раздачей нет. А вот вышеперечисленные вопросы интересовали. Самое интересное, что поддержка 2 вопроса в API есть, только не на прямую. Т.е. чтобы какие файлы загружать или нет, нужно его сначала поставить на скачивание.