INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Primzahlen finden



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.09.2011, 09:18 (Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2011 09:42 von Lucki.)
Beitrag #31

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Primzahlen finden
(14.09.2011 08:04 )jg schrieb:  Das ist jetzt aber geschummelt! Du parallelisiert die 1000 Durchläufe zur Berechnung der Primzahlen, nicht den einzelnen Berechnungs-Algorithmus selber.
Ja richtig, die äußerste Schleife ist doch nur dazu da, die Berechnung 1000 mal zu wiederholen, um damit die Zeitdauer, die man sonst nur auf 1 ms genau erhalten hätte, genauer auflösen zu können.
Und in den inneren For-Schleifen geht die Parallelisierung nicht, da die Strukturen Shift-Register enthalten.

Bei der Androhung von Gerd:
Zitat:Wenn ihr mir jetzt alle auf die Pelle rückt, muss ich mein VI wohl mal auf MultiCore trimmen - bisher läuft es nur auf einem CPU-Kern
handelt es sich möglicherweis nur um einen Bluff, um uns Angst zu machen Big Grin. Denn bei jedem Finden einer neuen Primzahl werden ja immer die vorangegangenen Ergebnisse verwendet - darauf beruht ja gerade die Schnelligkeit des Codes. Ein Paralleles Arbeiten kann ich mir da schwer vorstellen.

zu Hartz IV: Entschuldigung, der Scherz war von mir, und ich hatte hatte vergessen, diesen emotikonmäßig als solchen zu kennzeichnen, so daß daraus unversehens Ernst wurde. Aber ob mit oder ohne Kennzeichnung: mit meinem Humor habe ich nicht immer ein glückliches Händchen, und das hier ist wohl auch eher schief gegangen.
Übrigens: 1990 war ich ein Jahr arbeitslos, und in dieser Zeit hatte ich Labview im Selbtstudium gelernt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.09.2011, 13:57 (Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2011 14:21 von GerdW.)
Beitrag #32

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Primzahlen finden
Hallo Lucki,

Zitat:Bei der Androhung von Gerd:
Wenn ihr mir jetzt alle auf die Pelle rückt, muss ich mein VI wohl mal auf MultiCore trimmen - bisher läuft es nur auf einem CPU-Kern
handelt es sich möglicherweis nur um einen Bluff, um uns Angst zu machen Big Grin. Denn bei jedem Finden einer neuen Primzahl werden ja immer die vorangegangenen Ergebnisse verwendet - darauf beruht ja gerade die Schnelligkeit des Codes. Ein Paralleles Arbeiten kann ich mir da schwer vorstellen.
Nein, das war kein Bluff. Da sollte durchaus das Aufbohren auf 2 CPU-Kerne möglich sein, wenn man parallel 2 "benachbarte" Zahlen siebt und somit (vorher) 2 Iterationen nun in einer erledigt. Aber man sollte dafür schon die DataValueReferences benutzen...

@Jens:
Wenn du in deinem VI noch die ExpressionNode gegen echtes G austauscht, kannst du nochmal ~5% rausholen (2x²+2x = (2x+2)*x = 2*(x+1)*x)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2011, 14:42 (Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2011 14:44 von BNT.)
Beitrag #33

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Primzahlen finden
Liebe LabVIEW Fans

Vielen Dank für die rege Teilnahme an der Diskussion und die beigetragenen Lösungen.

Ich habe die Lösung des Praktikanten sowie die Vergleichszeiten der Berechnungen auf meinem Rechner, wie im Startbeitrag dieses Threads angegeben, eingestellt.

Knapper Gewinner nach Zeit ist: Primzahl3.vi mit 0.01s Mean.
Sowohl Primzahl2 als auch Primzahl3 schlagen das VI des Praktikanten um fast 2 Größenordnungen.

Ich denke aber, das sich das Primzahlen_Praktikant.vi, dass innerhalb von 3 Stunden, inklusive LAbVIEW lernen, entstanden ist, sehen lassen kann. Sowohl im Hinblick auf Perfomance und insbesondere Eleganz in Bezug auf Datenflußprogrammierung.

Gruß Holger


Angehängte Datei(en)
11.0 .vi  Primzahlen_Praktikant.vi (Größe: 22,65 KB / Downloads: 420)

0.0 .xls  Vergleich.xls (Größe: 13,5 KB / Downloads: 321)

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2011, 19:30
Beitrag #34

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: Primzahlen finden
(14.09.2011 08:04 )jg schrieb:  
(14.09.2011 07:25 )rasta schrieb:  Hallo Lucki,
Dein vi dauert auf meiner privaten Stromspar-CPU Big Grin ~18ms.Daraufhin habe Ich die "Configure Iteration Parallelism" - Möglichkeit
der For-Schleife benutzt und zumindestens auf meinem Rechner interessante Ergebnisse erhalten.
1.) Auto Core mit Configure Iteration Parallelism -- ~ 3,8ms
2.) Single Core -mit Configure Iteration Parallelism -- ~7,5ms
3.) Single Core-ohne Configure Iteration Parallelism -- ~18ms
Außer dieser For-Schleifenänderung ist es immer noch Dein Code.

Gruß
Ralf
Das ist jetzt aber geschummelt! Du parallelisiert die 1000 Durchläufe zur Berechnung der Primzahlen, nicht den einzelnen Berechnungs-Algorithmus selber.

Gruß, Jens
Jens,
ich schummele doch nicht Box, ich hätte lediglich den Off-Topic Hinweis setzten sollen.
Mir ging es um die (für mich) interessanten Ergebnisse Vergleich Nr 2.) mit Nr.3)
Im Task-Manager ist bei beiden 1 Kern voll ausgelastet, jedoch 2.) Faktor ~2,4 schneller als Nr.3)
Warum?
Vielleicht hat ja jemand eine Antwort..

Gruß Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2012, 10:17
Beitrag #35

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Primzahlen finden
(14.09.2011 09:16 )jg schrieb:  Anbei eine kleine Optimierung von Lucki's VI. Die Anzahl der Durchläufe der FOR-Loop lässt sich deutlich minimieren.
Auf einem i7 920 gewinne ich damit ca. 1 ms (9,2 ms zu 10,2 ms).

Dafür hast du das Ergebnisarray aber auch ein wenig zu klein dimensioniert. Es fehlen knapp 7000 Werte (bei 1000000 durchläufen).

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2012, 21:25
Beitrag #36

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Primzahlen finden
Oh, da hast du Recht. Da habe ich mir zu sehr auf die Aussage von GerdW verlassen.
(09.09.2011 21:44 )GerdW schrieb:  Wikipedia (in den 60er/70er Jahren war da ja noch nicht dran zu denken) ist da sehr hilfreich: Anzahl der Primzahlen bis x ~= x/ln(x). Ist eine gute Abschätzung, um Speicher zu reservieren, in dem die Ergebnisse abgelegt werden...
Naja, das ist die Gelegenheit, gleich mal den Formelknoten rauszuschmeißen.

10.0 .vi  Primzahl4.vi (Größe: 18,98 KB / Downloads: 316)

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2012, 21:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2012 21:47 von GerdW.)
Beitrag #37

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Primzahlen finden
Hallo Jens,

Anmerkungen:
- ich hatte nicht umsonst "~=" geschrieben
- Wikipedia schreibt pi(x) ~ x/lnx
- Wikipedia zeigt eine Grafik zu pi(x), der man entnehmen kann, das x/ln(x) etwas zu kleine Werte approximiert (wie du gemerkt hast Smile )
- Faktor 2 wie bei dir ist deutlich zu hoch, ich rechne da mit ca. 1,4 (und bin auf der sicheren Seite)
- jetzt solltest du noch die Debugging-Features ausschalten und über die darauf folgende Beschleunigung staunen (bei LV2011 ca. Faktor 3,5 auf meinem Laptop)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2012, 22:00
Beitrag #38

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Primzahlen finden
Hi, Gerd,

das "~" hatte ich damals schon gesehen und bemerkt, aber irgendwie habe ich die endgültige Ergebnis-Größe des Arrays nicht mehr überprüft. Ganz klar mein Fehler, nicht deiner Wall , und gemerkt hat es Carsten Guru2

Toller Tipp mit Debugging, bringt auf meinem Heim-PC etwas mehr als Faktor 2 (ca. 5 ms zu 12 ms) unter LV2010.

Guru1 Guru1 Guru1

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.01.2012, 09:11
Beitrag #39

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Primzahlen finden
Dass ich das auch mal erleben darf. Big Grin

Gruß Markus

(19.01.2012 22:00 )jg schrieb:  Ganz klar mein Fehler

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.01.2012, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2015 14:58 von Lucki.)
Beitrag #40

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Primzahlen finden
Die Fomel pi(x) ~ x/lnx wurde ja 1793 bereits vom 15jährigen Gauß vermutet, und das bietet einen schönen Vorwand, um etwas
Offtopic2 [Werbung]
einzuschleußen:
In dem 3D-Film über Gauß "Die Vermessung der Welt", Kinostart 25. Oktober 2012, spielen in der Schulklasse, in der der kleine Gauß, statt die Zahlen von 1-50 zu addieren, die Summenformel für eine arithmetrische Reihe verwendete, meine beiden Enkelkinder mit.
Mit dreckigen Gesichtern und Händen, kurz geschorenen Haaren. (Mein Enkeltochter hat sich allerdings geweigert, ihre blonden Locken abschneiden zu lassen, durfte trotzdem mitmachen) Gedreht wurde die Szene in Görlitz, als Gage bekam jeder 150 Euro. Fahrtkosten 2x Dresden-Görlitz blieben allerdings an mir hängen.Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Farbe finden und verfolgen snuz 3 6.642 25.05.2011 07:27
Letzter Beitrag: unicorn

Gehe zu: