smp-Programmierung

Blender3D

Blender3D

Vitamin C++
Tag, liebes Forum,

Ich würde gerne in die SMP-Programmierung mit C oder besser C++ einsteigen und da wollte ich mal fragen, was es an Dokumentationen z.B. für die Kernelheaders, die dieses Thema behadeln, giebt. Andere Dokumentationen sind natürlich auch erwünscht.

Für alle konstruktiven Antworten gibt es jetzt schon im Vorraus eine Dankeschön!!!

Grüße, Blender3D
 
Danke für die Links...

OpenMP ist mir schon ein begriff... hab versucht es zu installieren, bin daran aber vorerste gescheitert.

Ich hatte versucht mit smp_call_function_single(); aus der Datei smp.h vom Kernel, einen Thread zu starten, habe aber das Problem, dass ich meine Funktion nicht an dieFunktion übergeben kann, da immer die Fehlermeldung "invalid use of void expression" kommt.

Der Sourcecode:
Code:
#include <iostream>
#include <linux/smp.h>

int thread;
int info;

void out(int t)
{
	std::cout << "Hallo, vom Thread" << t << std::endl;
}

int main()
{
	smp_setup_processor_id();

	for(thread = 0; thread <= 7; thread++)
	{
		smp_call_function_single(thread, "\0", out(thread), 8, 8);
	}

	return 0;
}

Was mache ich falsch?

Grüße, Blender3D
 
Deine Parameterübergabe ist falsch!

So wie ich die def kenne:
int smp_call_function_single(int cpuid, void (*func)(void *info), void *info, int nonatomic, int wait)

mußt Du folgendes ändern:

void out( :devil:void * pData )
{
// etwas mit pData anstellen
}

....

struct
{
...
} mydata;

...

smp_call_function_single( aCPU_ID, :devil:out, :devil:(void*)mydata, 8, 8 );
 
Danke für die Antworten... aber leider versperren mir sone bösen Smeilys den Blick auf den Sourcecode...

Grüße, Blender3D
 
Ah.. ok, ja ich wollte jetzt keine Threading lib schreiben.

Danke für die Antworten!!

Grüße, Blender3D
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Erweiterbarer Wrapper für GNU find

Keine Zugriff von Windows 10 auf Sambafreigaben

Einstieg in die QT-Programmierung

g++ Shared Libraries

Zurück
Oben