powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
25 сообщений из 165, страница 6 из 7
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108656
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
какие ответы? тут кто-то написал........?

"какие вопросы, такие и ответы" (с)
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108659
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно создать топик под названием Нужен ли Зайчику пул?

Но мне кажется что пока не будет конкретного юз-кейса то никакого заключения
по архитектуре не будет. Тут 10 - архитекторов и все по своему правы.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108666
в http сам FastCGI или HTTP-сервер потоками рулит
ему прилетает запрос -> он ему поток -> разбирает -> грузит логику
там 1 запрос всегда = 1 поток, как я понимаю
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108682
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчиктам 1 запрос всегда = 1 поток, как я понимаю

Это сугубо на фантазии разработчика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113287
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случайно набрел - какого жару, оказывается, поддал Торвальдс в тему использования спинлоков в пользовательском режиме
в январе 20го года:

...
I repeat: do not use spinlocks in user space, unless you actually know what you're doing . And be aware that the likelihood that you know what you are doing is basically nil.
...
Because you should never ever think that you're clever enough to write your own locking routines.. Because the likelihood is that you aren't (and by that "you" I very much include myself - we've tweaked all the in-kernel locking over decades, and gone through the simple test-and-set to ticket locks to cacheline-efficient queuing locks, and even people who know what they are doing tend to get it wrong several times).
...

https://www.opennet.ru/opennews/art.shtml?num=52140

https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113297
хм, как в C выглядит "честное распределение ресурсов"
отсюда
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
Код на C для gcc gcc -o rw -lpthread -lm rewr.c

#include <pthread.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <semaphore.h>
#define M 4 //num of WR
#define N 3 //num of RE
unsigned int iter; //iteration
sem_t accessM,readresM,orderM; //sem.
unsigned int readers = 0;	// Number of readers accessing the resource

void *reader(void *prm)
{
	int num1=*(int*)prm;
	int i=0,r;
	for(i;i<iter;i++)
	{
		
		if (sem_wait(&orderM)==0) printf("%d Читатель %d в очереди__________Ч%d\n",i,num1,num1);	// Remember our order of arrival
		sem_wait(&readresM);				 // We will manipulate the readers counter
		if (readers == 0)				// If there are currently no readers (we came first)...
			sem_wait(&accessM);				// ...requests exclusive access to the resource for readers
		readers++;							 // Note that there is now one more reader
		sem_post(&orderM);					 // Release order of arrival semaphore (we have been served)
		sem_post(&readresM);				 // We are done accessing the number of readers for now

		printf("%d Работает читатель %d________________Ч%d\n",i,num1,num1);				// Here the reader can read the resource at will
		r=1+rand()%4;
		sleep(r);
		sem_wait(&readresM);				 // We will manipulate the readers counter
		readers--;							 // We are leaving, there is one less reader
		if (readers == 0)				// If there are no more readers currently reading...
			sem_post(&accessM);				// ...release exclusive access to the resource
		sem_post(&readresM);				 // We are done accessing the number of readers for now
	}
}

void *writer(void *prm)
{
	int num2=*(int*)prm;
	int j=0,r;
	for(j;j<iter;j++)
	{
		if(sem_wait(&orderM)==0) printf("%d Писатель %d в очереди__________П%d\n",j,num2,num2); // Remember our order of arrival
		sem_wait(&accessM);					// Request exclusive access to the resource
		sem_post(&orderM);					 // Release order of arrival semaphore (we have been served)

		printf("%d Работает писатель %d________________П%d\n",j,num2,num2);				 // Here the writer can modify the resource at will
		r=1+rand()%4;
		sleep(r);
		sem_post(&accessM);					// Release exclusive access to the resource
	}
}

void main()
{	
	pthread_t threadRE[N];
	pthread_t threadWR[M];
	sem_init(&accessM,0,1);
	sem_init(&readresM,0,1);
	sem_init(&orderM,0,1);

	printf("Введите количество итераций: ");
	scanf("%d",&iter);
	printf("Iter                         ОЧЕРЕДЬ/ВЫПОЛНЕНИЕ\n");
	int i;
	for(i=0;i<M;i++)
	{
		pthread_create(&(threadWR[i]),NULL,writer,(void*)&i);
	}
	for(i=0;i<N;i++)
	{
		pthread_create(&(threadRE[i]),NULL,reader,(void*)&i);
	}
	

	for(i=0;i<N;i++)
	{
		pthread_join(threadRE[i],NULL);
	}
	for(i=0;i<M;i++)
	{
		pthread_join(threadWR[i],NULL);
	}
	
	sem_destroy(&accessM);
	sem_destroy(&readresM);
	sem_destroy(&orderM);
}



и как оно выглядит в C++
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
shared_mutex m;                 // a mutex that can be shared

void reader()
{
    shared_lock lck {m};        // willing to share access with other readers
    // ... read ...
}

void writer()
{
    unique_lock lck {m};        // needs exclusive (unique) access
    // ... write ...
}
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ты из тех, кто думает, что заметание кода под коврик библиотеки делает его
лучше?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113329
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,
Этот пример ни о чем не говорит.
Лучше сравнивай С++ с С++
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113371
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нам нужен бенчмарк. Нужен однопоточный код который множит матрицы. И тоже самое с потоками.
И нужно хотя-бы несколько сотен запусков умножений по прогретому кешу.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113407
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это кризис жанра ....
возьмите матрицу 10х10 чтобы не плодить воображение.
И подумайте пошагово - как же устроить перемножение матрицы да еще и ускорить......
=Никак.

Я - Вася, по фотке со спутника полетел смотреть квадрат
А Петя который типа лихой - все будет портить? Нет. У него нет такого права.

Что вы пытаетесь крутить?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113420
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не беспокойся сильно.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113428
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полезно переносить логику на обычные жизненные ситуации.
И не будет никакого беспокойства.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113431
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача обедающих философов.

Жизненная?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113435
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данном топике и в данной постановке - абсолютно Нет.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113439
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще - хейтерская викепедийная задача
причем там философы....

Дурдом как и Пирамида Маслоу.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113451
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Философы, матрицы - это просто учебные задачи на параллелизм и дедлоки которые просто рассматриваются в учебниках.

Но если вы знаете более интересные и самодостаточные задачи, которые не зависят от I/O - прошу. Публикуйте.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113458
Dimitry Sibiryakov
Так ты из тех, кто думает, что заметание кода под коврик библиотеки делает его лучше?..

я из тех, кто думает, что писать новый код = всегда ошибки
меньше кода = меньше ошибок
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113459
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

дело в том что в данном топике мы умножаем А на В,
где априори А и В - унитарные объекты,
иначе событие А*В не состоится .


Причем здесь задача голодных студентов с двумя вилками у каждого?

Изначальный вопрос - Как ускорить
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113461
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчикя из тех, кто думает, что писать новый код = всегда ошибки
меньше кода = меньше ошибок

А в результате мы видим приложения, где куча готовых библиотек, каждая из
которых делает чуть-чуть не совсем то, что нужно, смотана изолентой и подпёрта
костылями. Работают они соответственно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113462
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Унитарные? Это термин из какой предметной области?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113506
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из нашей гражданской жизни. Почти все вывески на муниципальных учреждениях имеют добавку "унитарные"
в физике - это "квантовые"
в математике строгого понятия нет, разве что "простые числа"
"унитарное" - значит "неделимое" предприятие. Появилось чтобы не "распиливали" на части.
Отличный четкий термин.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113510
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, если я заменю на атомарное - это будет соответствовать вашему предлагаемому смыслу?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113525
Dimitry Sibiryakov
бабушкин зайчикя из тех, кто думает, что писать новый код = всегда ошибки
меньше кода = меньше ошибок

А в результате мы видим приложения, где куча готовых библиотек, каждая из
которых делает чуть-чуть не совсем то, что нужно, смотана изолентой и подпёрта
костылями. Работают они соответственно.
я уже написал 2 своих фреймворка с нуля (на PHP правда)
чё-то пас
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113528
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
из нашей гражданской жизни. Почти все вывески на муниципальных учреждениях имеют добавку "унитарные"
в физике - это "квантовые"
Вот только не надо на физику наговаривать: "квантовые" (физическое) и "унитарное" (организационно-правовая форма) - не имеют между собой ничего общего.в математике строгого понятия нет, разве что "простые числа"Зачем вы натянули сову на ещё один глобус?"унитарное" - значит "неделимое" предприятие. Унитарным предприятием признается коммерческая организация, не наделенная правом собственности на закрепленное за ней собственником имущество .
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40113529
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Alex_Ustinov, если я заменю на атомарное - это будет соответствовать вашему предлагаемому смыслу?
Вообще никак.
Матрицы, просто по определению, состоят из элементов. Элементы могут обладать свойством атомарности доступа.
В отношении всей матрицы глупо говорить и об "атомарности" и об "унитарности".
...
Рейтинг: 0 / 0
25 сообщений из 165, страница 6 из 7
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]