Schlafen und Warten

Die neue Zeitbibliothek ist ein elementarer Bestandteil der Threading-Schnittstelle. Sowohl Threads, Locks, Bedingungsvariablen als auch Futures besitzen ein Verständnis von Zeit. Alle vier Komponenten ist gemein, dass sie für eine Zeitspanne oder bis zu einem Zeitpunkt schlafen, warten oder auch nur blockieren können.

Weiterlesen...
Tags: time
Gelesen: 12458

Der Zeitgeber

Ein Zeitgeber besteht aus einem Startpunkt und einem Zeittakt. C++ hat mit std::chrono::system_clock, std::chrono::steady_clock und std::chrono::high_resolution_clock drei Zeitgeber im Angebot.

Weiterlesen...
Tags: time
Gelesen: 15235

Die Zeitdauer

Eine Zeitdauer ist die Differenz zwischen zwei Zeitpunkten. Sie wird in der Anzahl von Zeittakten angegeben.

Weiterlesen...
Gelesen: 17095

Der Zeitpunkt

Der Zeitpunkt wird durch seinen Startpunkt, die sogenannte Epoche und die darauf bezogenen Zeitdauer festgelegt. Dabei enthält ein Zeitpunkt einen Zeitgeber(Clock) und eine Zeitdauer (Duration).

Weiterlesen...
Tags: time
Gelesen: 14571

Die Zeitbibliothek

Ein Blog, der sich mit den Multithreadingfähigkeiten von modernem C++ beschäftigt und nicht auf die Zeitbibliothek eingeht, ist nicht vollständig. Insbesondere, wenn ich in den letzten Artikeln öfters mit Hilfe der Zeitbibliothek die Performanz von kleinen Codeabschnitten gemessen habe. Daher gebe ich in diesem Artikel einen Überblick über die Zeitkomponenten Zeitpunkt, Zeitdauer und Zeitgeber. Jeder der drei Komponenten werde ich mir dann in weiteren Artikeln noch genauer anschauen.

Weiterlesen...
Tags: time
Gelesen: 9477

Mein Fazit: Addition in drei verschiedenen Varianten

Nachdem ich in den letzten drei Artikel die Summe eines Vektors in drei verschiedenen Strategien berechnet habe, möchte ich mit diesem Artikel mein Fazit ziehen.

Weiterlesen...
Tags: Tasks
Gelesen: 15426

Multithreaded: Addition mit minimaler Synchronisation

Zwei Strategien bin ich bisher bei meiner Addition aller Elemente eines std::vector gefolgt. Zum einen habe ich die ganze Summation in einem Thread ausgeführt (Single-Threaded: Summe der Elemente eines Vektors), zum anderen alle Threads auf einer gemeinsamen Summations-Variable (Multithreaded: Addition mit einer geteilten Variable) agieren lassen. Gerade die zweite Strategie war sehr naiv. In diesem Artikel werde ich meine Erkenntnisse aus beiden Artikeln anwenden. Mein Ziel wird es daher sein, die Threads möglichst unabhängig ihre Arbeit ausführen zu lassen und die Synchronisation der Threads auf der Summations-Variable zu minimieren.

Weiterlesen...
Gelesen: 11948

Multithreaded: Addition mit einer geteilten Variable

Ziel dieses Artikels ist es, die Summe aller Elemente eines Vektors zu bilden. Habe ich es im letzten Artikel mit einem Thread versucht, nütze ich dieses mal die volle Power meiner PCs. Ich verwende eine gemeinsame Summen-Variable, die von allen Threads gleichzeitig benutzt wird. Was bei ersten Hinsehen wie eine gute Idee klingt, ist bei genauerem Blick eine sehr naive Strategie. Überwiegt der Aufwand für die Synchronisation der Summen-Variable deutlich den Performanzvorteil der vier bzw. zwei CPUs.

Weiterlesen...
Gelesen: 14006

Single-Threaded: Summe der Elemente eines Vektors

Wie lassen sich die Werte eines std::vector am schnellsten zusammenaddieren? Diese Frage will ich in mehreren Artikeln nachgehen. Als Referenzwert soll dabei die Addition in einem Thread dienen. In weiteren Artikel gehe ich auf atomare Variablen, Locks, Tasks und threadlokale Daten ein.

Weiterlesen...
Gelesen: 15445

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 1223

Gestern 2151

Woche 7269

Monat 32128

Insgesamt 3331040

Aktuell sind 39 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare