<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[C++ in den Naturwissenschaften]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Informatik und die Naturwissenschaften gehen ja immer weiter zusammen und es entstehen ganze Studiengänge wie Bioinformatik und ähliches.</p>
<p>Gibt es denn hier Leute, die sich mit der Programmiersprache C++ in den Naturwissenschaften auskennen? Wie geläufig ist sie hier und kann es helfen sie zu erlernen?</p>
<p>Würde mich über ein paar Ratschläge freuen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/351794/c-in-den-naturwissenschaften</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 12:37:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/351794.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Nov 2020 21:26:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Fri, 06 Nov 2020 21:26:16 GMT]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Informatik und die Naturwissenschaften gehen ja immer weiter zusammen und es entstehen ganze Studiengänge wie Bioinformatik und ähliches.</p>
<p>Gibt es denn hier Leute, die sich mit der Programmiersprache C++ in den Naturwissenschaften auskennen? Wie geläufig ist sie hier und kann es helfen sie zu erlernen?</p>
<p>Würde mich über ein paar Ratschläge freuen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596047</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Fri, 06 Nov 2020 21:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Fri, 06 Nov 2020 21:51:24 GMT]]></title><description><![CDATA[<p>In den Teilen der Naturwissenschaften, die richtig harte Numerik machen (d.h. Dinge, die mehr als ein paar CPU-Stunden brauchen), ist C++ sehr geläufig. Aber beim Studium selbst wird dir dies nicht viel nutzen, da du so etwas dort nicht machst. Man lässt keine ganzen Hörsäle voll Studenten teure Supercomputerrechenzeit verbraten. Das machst du bloß als Einzelkämpfer in einer Bachelor-/Master-/Doktorarbeit, wenn du dich für genau so ein Thema entscheidest.</p>
<p><em>Falls</em> du im Studium programmierst, wird das in der Programmiersprache gemacht werden, die der jeweilige Prof oder Fachbereich gerade gut findet, was so ziemlich alles sein kann, auch C++. Da ist es auch völlig egal, ob du die jeweils tollsten Tricks beherrscht, oder nur die Grundlagen. Es <em>kann</em> in solchen Fällen helfen, wenn man allgemein programmieren kann. Denn wenn man das erst einmal grundsätzlich kann, dann kommt man recht schnell in neue Sprachen rein.</p>
<p>Vielleicht überschätzt du auch, wie viel praktisches Programmieren im Studium vorkommt. Gerade die informatisch angehauchten Studiengänge sind primär immer noch Mathematik und sonstiges Wissen des Fachgebiets. Programmieren mag da als Handwerkszeug eine gewisse Rolle spielen, aber diese ist, bis auf eventuelle Programmierkurse, nur Nebensache. Ganz besonders wenn es auch noch um Spezialwissen über bestimmte Sprachen geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596050</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 Nov 2020 21:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Fri, 06 Nov 2020 22:09:53 GMT]]></title><description><![CDATA[<p>Hey Seppj,</p>
<p>danke für eine so schnelle und ausführliche Antwort!</p>
<p>Verstehe, das macht Sinn. Es wird in den Naturwissenschaften dann wohl eher auf die allgemeinen Programmierkenntnisse ankommen.</p>
<p>Welche naturwissenschaftlichen Gebiete sind es denn, die viel Numerik machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596053</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Fri, 06 Nov 2020 22:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Fri, 06 Nov 2020 22:37:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36617">@cpluschris</a> sagte in <a href="/forum/post/2596053">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Welche naturwissenschaftlichen Gebiete sind es denn, die viel Numerik machen?</p>
</blockquote>
<p>Das gibt es in allen als Unterbereich. Gibt halt tendenziell überall Leute, die eher praktische Experimente machen, solche die eher reine Theorie machen, und solche, die mit den Theorien rechnen.</p>
<p>Obiges gilt nur für die &quot;richtigen&quot; Naturwissenschaften. In reiner Mathematik und Informatik hat man kaum Experimente, auch keine simulierten. Das heißt, dass ironischerweise die praktische Numerik in Mathematik und Informatik gar keine so große Rolle spielt, obwohl alle numerischen Methoden diesen beiden Gebieten entspringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596056</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 Nov 2020 22:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 13:16:52 GMT]]></title><description><![CDATA[<p>Auf Clustern werden drei wesentliche Techniken benutzt, um Programme zu parallelisieren: OpenMP, MPI und GPGPU Parellisierung (entweder CUDA oder OpenCL je nachdem vom welchen Hersteller die Karten sind, wobei CUDA verbreiteter ist.). OpenMP und MPI sind für die Programmiersprachen C, C++ und Fortran erhältlich, bei anderen Sprachen muss man Wrapper um das C bzw. C++ Interface herum bauen. Deshalb sind diese drei Sprachen sehr verbreitet bei den Wissenschaften, die häufig auf Clustern rechnen. Die Masse an Rechenzeit verbrauchen üblicherweise theoretische Physiker und theoretische Chemiker. Wenn es Dich interessiert, die Cluster veröffentlichen üblicherweise Jahresberichte in denen die Projekte auf dem Clustern kurz angerissen werden, damit die Investition in den Clustern begründet wird. Es lohnt sich daher mal einen Blick in so einen Bericht zu verwerfen.</p>
<p>Was ich auch erlebt habe, dass es Einzelkämpfer gibt, die dann feststellen, dass ihr Programme auf dem PC/Workstation zu langsam läuft und sie dann „verzweifelt“ versuchen das Programm schneller laufen zu lassen. Beliebt in so einem Kontext ist da Matlab. Nur auf dem Cluster hat man dann das Problem, dass man zig Lizenzen für Matlab brauchen würde.</p>
<p>MPI ist die Standardtechnik um Programm zwischen Cluster-Knoten zu parallelisieren. Es kommt daher bei allen Programmen vor, die auf mehr als einem Knoten arbeiten. Niemand macht da direkte Netzwerkprogrammierung, das wird alles über MPI abstrahiert. MPI hat üblicherweise auch Treiber um wahlweise über Ethernet oder Infiniband zu funktionieren. IB ist wegen der geringeren Latenz häufiger anzutreffen. Der springende Punkt ist, man muss sich in seinem Programm mit MPI Code nicht darum kümmern, was für eine Netzwerktechnologie genutzt wird.</p>
<p>Nach meiner persönlichen Erfahrungen sowohl mit C, C++ und Fortran hat man bei naturwissenschaftlichen Code die schnellsten Ergebnisse, wenn man Fortran nutzt. Die Ablaufgeschwindigkeit der Programme sind i.d.R. bei allen drei Sprachen vergleichbar, wenn man weiß was man tut. C++ ist eine Alternative zu Fortran, von C würde ich persönlich für neue Projekte die Finger lassen, da schlägt man sich zu sehr mit Niederungen der Sprache herum, die beim eigentlichen Problem nicht hilfreich sind.</p>
<p>Zu Fortran gibt es aktuelle Literatur:<br />
FORTRAN FOR SCIENTISTS &amp; ENGINEERS; Stephan J. Chapman, Amazon versucht einem unbedingt die sehr teure Hardcover Version anzudrehen, es gibt ein günstiges Paperback für einen Bruchteil des Preises (ca. €186 das Hardback das Paperback gibt es für ca. €64 ISBN 978-1-260-08417-7 sonst  findet man das fast nicht)<br />
Modern Fortran Explained: Incorporating Fortran 2018; Michael Metcalf</p>
<p>Das Buch von Chapman ist Anfänger verträglicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596058</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Sat, 07 Nov 2020 13:16:52 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 11:56:09 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a> sagte in <a href="/forum/post/2596056">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Das heißt, dass ironischerweise die praktische Numerik in Mathematik und Informatik gar keine so große Rolle spielt, obwohl alle numerischen Methoden diesen beiden Gebieten entspringen.</p>
</blockquote>
<p>Das finde ich interessant! Macht aber auch Sinn, wenn man bedenkt, dass in der Mathematik selber kaum Experimente durchgeführt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596063</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Sat, 07 Nov 2020 11:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 12:09:56 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16792">@john-0</a> sagte in <a href="/forum/post/2596058">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Das Buch von Chapman ist Anfänger verträglicher.</p>
</blockquote>
<p>Vielen Dank für die Buchempfehlung! Da werde ich mal reinschauen. Fortran ist mir tatsächlich neu und da muss ich mal einen Blick drauf werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596065</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Sat, 07 Nov 2020 12:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 17:48:21 GMT]]></title><description><![CDATA[<p>Also in (experimentellen) HEP war lief das oft anders ab. Wir hatten das WLCG zum Rechnen. Da läuft es so, dass man nicht das Analyseprogramm selbst parallelisiert, sondern die zu prozessierenden Daten aufteilt und somit das Programm x-mal auf einem x-tel der Daten laufen lässt und am Ende die Ergbnisse zusammenjoint. Ein Prozessierungsjob wurde ins Grid submitted und lief dann auf einem der Rechenzentren, wo die Daten eben gerade lagen. Nach einiger Zeit wusste man dann schon, bei welchen Rechenzentren die Jobs eher abgebrochen wurden oder ewig in der Queue waren oder nur sehr langsam liefen - und wo es schnell und zuverlässig ging. Die Rückgabedaten waren dann hoffentlich so klein, dass man sie lokal prozessieren konnte. Es gab  auch kleinere Datenskims auf dem lokalen Cluster, wo man natürlich viel schneller und zuverlässiger arbeiten konnte. Insbesondere hatte das lokale RZ die Daten, die man für die meisten Analysen benötigte - nämlich die, mit denen die lokalen Forschungsgruppen oft gearbeitet haben. Nur manchmal musste man eben in den sauren Apfel beißen und sich Daten von anderswo besorgen.</p>
<p>Code war alles mit C++ und Python, aber die von <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16792">@john-0</a> genannten Techniken haben wir dabei nicht eingesetzt. Wenn du mal einen Blick auf die Experimentsoftware haben willst: <a href="https://github.com/cms-sw/cmssw" rel="nofollow">https://github.com/cms-sw/cmssw</a> - aber keine Angst, man muss sich dann ja nur in einem Teilbereich, den man gerade bearbeitet, auskennen.</p>
<p>Und die spätere Analyse, nachdem man dann einen ordentlichen Datensatz hatte, haben wir damals mit C++ und ROOT geschrieben, aber inzwischen hat Python ganz erheblich an Bedeutung gewonnen - man will sich beim Plotten und Histogrammerstellen etc. ja nicht mit Speicherlecks auseinandersetzen müssen - und außerdem ist Stringbehandlung in C++ immer nervig.</p>
<p>Was ich damit sagen will: was du genau brauchst, hängt sehr stark von deinem konkreten Studiengang - und dann sogar noch der fachlichen Ausrichtung ab!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596100</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Sat, 07 Nov 2020 17:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 19:38:17 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/33261">@wob</a> sagte in <a href="/forum/post/2596100">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Also in (experimentellen) HEP war lief das oft anders ab. Wir hatten das WLCG zum Rechnen. Da läuft es so, dass man nicht das Analyseprogramm selbst parallelisiert, sondern die zu prozessierenden Daten aufteilt und somit das Programm x-mal auf einem x-tel der Daten laufen lässt und am Ende die Ergbnisse zusammenjoint.</p>
</blockquote>
<p>Der Ansatz der Trivialparallelisierung. Dann braucht man kein MPI oder OpenMP. Der Code läuft zudem auch auf unterschiedlichen Systemen, weshalb keine große Anpassung an die Hardware erfolgt. Daher wird auch kein SIMD Code genutzt.</p>
<blockquote>
<p>Und die spätere Analyse, nachdem man dann einen ordentlichen Datensatz hatte, haben wir damals mit C++ und ROOT geschrieben, aber inzwischen hat Python ganz erheblich an Bedeutung gewonnen - man will sich beim Plotten und Histogrammerstellen etc. ja nicht mit Speicherlecks auseinandersetzen müssen - und außerdem ist Stringbehandlung in C++ immer nervig.</p>
</blockquote>
<p>Auf dem Desktop wird NumPy immer wichtiger, aber da sind die wichtigen PlugIns auch in C++ geschrieben.</p>
<p>P.S. Bei wir war's <a href="https://en.wikipedia.org/wiki/Density_functional_theory" rel="nofollow">DFT</a> mit selbstgeschriebenem Code von Prof. In der Uni wurde auch <a href="http://susi.theochem.tuwien.ac.at/" rel="nofollow">WIEN2k</a> und imho auch <a href="https://www.cp2k.org/" rel="nofollow">cp2k</a> eingesetzt. Die Chemiker haben oftmals <a href="http://gaussian.com/" rel="nofollow">Gaussian</a> genutzt, und noch etwas anderes dessen Name ich vergessen habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596113</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Sat, 07 Nov 2020 19:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sat, 07 Nov 2020 21:26:18 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/33261">@wob</a> sagte in <a href="/forum/post/2596100">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Code war alles mit C++ und Python</p>
</blockquote>
<p>Genau, Python ist mir in der Uni bereits untergekommen. Interessant, dass C++ damit in manchen Fällen wohl auch kombiniert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596119</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Sat, 07 Nov 2020 21:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Sun, 08 Nov 2020 14:56:56 GMT]]></title><description><![CDATA[<p>Das beste Schachprogramm der Welt, nämlich Stockfish 12 ist in C++ programmiert.<br />
<a href="https://github.com/official-stockfish/Stockfish" rel="nofollow">https://github.com/official-stockfish/Stockfish</a></p>
<p>... und auch Teile von lc0, dem zweitbesten.<br />
<a href="https://github.com/LeelaChessZero/lc0" rel="nofollow">https://github.com/LeelaChessZero/lc0</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596168</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 08 Nov 2020 14:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Mon, 09 Nov 2020 10:20:50 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36617">@cpluschris</a> sagte in <a href="/forum/post/2596047">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>uten Abend!<br />
Informatik und die Naturwissenschaften gehen ja immer weiter zusammen und es entstehen ganze Studiengänge wie Bioinformatik und ähliches.<br />
Gibt es denn hier Leute, die sich mit der Programmiersprache C++ in den Naturwissenschaften auskennen? Wie geläufig ist sie hier und kann es helfen sie zu erlernen?<br />
Würde mich über ein paar Ratschläge freuen.</p>
</blockquote>
<p>Ich denke, wenn du C++ verstehst, verleiht es dir mehr Glaubwürdigkeit, und ich glaube auch, dass die Leute in der Bioinformatik dazu tendieren, sich für R/Phython zu entscheiden. Ich denke, wenn man als echter Programmierer betrachtet werden will, muss man C++ verstehen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596256</guid><dc:creator><![CDATA[Estra]]></dc:creator><pubDate>Mon, 09 Nov 2020 10:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Mon, 09 Nov 2020 11:53:00 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36417">@Estra</a> sagte in <a href="/forum/post/2596256">C++ in den Naturwissenschaften</a>:</p>
<blockquote>
<p>Ich denke, wenn man als echter Programmierer betrachtet werden will, muss man C++ verstehen können.</p>
</blockquote>
<p>Das ist Quatsch mit Soße. Ich kenne viele gute Programmierer, die noch nie was mit C++ gemacht haben und C++ auch nicht versehen (müssen). Dies betrifft einen Großteil der Webentwickler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596260</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Mon, 09 Nov 2020 11:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to C++ in den Naturwissenschaften on Mon, 09 Nov 2020 11:37:20 GMT]]></title><description><![CDATA[<p>Ja ich denke das , was die meisten hier gesagt haben ist, dass man die Grundzüge des Programmierens kennen sollte. Je nach Anwendungsgebiet variiert dann auch die Programmiersprache und in manchen Fällen kann das dann C++ sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2596267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2596267</guid><dc:creator><![CDATA[cpluschris]]></dc:creator><pubDate>Mon, 09 Nov 2020 11:37:20 GMT</pubDate></item></channel></rss>