Dual Xeons oder i7 ?

Allerdings kann man auf aktuellen Serverboards den Physikalischen Speicher an die entsprechende CPU 'festpinnen', so dass Threads von Cpu1 auch nur den Speicher von Cpu1 nutzen.
Erst neulich in so nem Bios rumgegurkt und entdeckt. :)

Gruß
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das nutzt dir aber nix, wenn Speicherquerzugriffe nötig sind ;)
Bildlich kann man das beispielsweise an globalen Variablen erklären. Eine globale Variable wird idR eben global definiert. Heist sie existiert ein einziges mal. Es kann nun sein, das viele viele verschiedene Programmteile auf diese Variable zugreifen. Heist also, ein Programmteil in Thread 1 auf CPU 1 greift nativ auf diese globale Variable zu, weil sich diese auch im RAM von CPU 1 befindet. Thread zwei hingegen läuft auf CPU 2 und muss einen Querzugriff tätigen, der deutlich langsamer ist, weil A extrem viel mehr Latenz sowie deutlich weniger Bandbreite zwischen den CPUs vorhanden.

Wie gesagt, ist nur bildlich, dürfte aber das Prinzip verdeutlichen.

Eine gänzliche physische Trennung wäre mir beispielsweise nicht bekannt. Sprich das sich das System wirklich so verhällt, wie zwei einzelne PCs.

Und es ist ja nicht nur unbedingt nur ein RAM Zugriff, der den Speed drücken kann. Es gibt unmengen von Caches usw. diese sind pfeilschnell im Vergleich zum "lahmen" RAM. Und dort zieht sich das Problem analog durch, eben weil Latenz und Bandbreite für die CPU Interconnects deutlich langsamer sind.
 
Zuletzt bearbeitet:
Bildlich kann man das beispielsweise an globalen Variablen erklären. Eine globale Variable wird idR eben global definiert. Heist sie existiert ein einziges mal.

Irgenwie musste ich gerade an mein erstes Semester und den Programmierkrus denken... :d
 
Allerdings kann man auf aktuellen Serverboards den Physikalischen Speicher an die entsprechende CPU 'festpinnen', so dass Threads von Cpu1 auch nur den Speicher von Cpu1 nutzen.
Das ist nur eine Priorisierung und kann vom Programm ohnehin übergangen werden. Üblicherweise wird Speicher Thread lokal alloziert, dazu reicht schon die "first touch rule" aus. Über die libnuma läßt sich unter Linux dediziert steuern wo und wie der Speicher in einem NUMA-System alloziert werden soll.
 
Ich schau mir das bei Gelegenheit nochmal genauer an. War glaub ne ziemlich aktuelle IBM 3650. Bring dann mal screenshots vom BIOS mit.

Grueße
 
@p4n0
der Screen nutzt wie gesagt wenig, interessant ist, wie sich die Einstellung in der Praxis verhält ;)
Settings zum verbiegen gibts unmengen...
 
Mal davon abgesehen davon, dass er vielelicht genau diese Software dafür nutzen muss, wäre ein Wechsel zu einer Software mit GPU-Computing-Software auch mit einem höheren Anschaffungspreis für Software und eventuell einer Zusätzlichen GPU verbunden, das kann leicht genauso teuer werden, wie die CPU-Plattform einfach zu wechseln. ;)
 
Mal davon abgesehen davon, dass er vielelicht genau diese Software dafür nutzen muss, wäre ein Wechsel zu einer Software mit GPU-Computing-Software auch mit einem höheren Anschaffungspreis für Software und eventuell einer Zusätzlichen GPU verbunden, das kann leicht genauso teuer werden, wie die CPU-Plattform einfach zu wechseln. ;)

blos kann man später 4 karten einbauen / ergo 8 GPUs und das auf einem handelsüblichen Highendmainboard für rund 200 Euro. Wenn der Wechsel der Software möglich ist, das ist eben mit meiner Aussage nur mal in den Raum gestellt. Das Aufrüsten vereinfacht sich extrem und die Kosten dafür auch. Und die Mehrleistung GPU-CPU ist nicht vernachlässigbar.
 
Zuletzt bearbeitet:
Ich sag ja nciht, dass das unmöglich ist nur, kann ein Software-Wechel im Profibereich auch sau teuer sein. Aber vier Dual-GPUs auf Sockel 1155, ob da dann nicht irgendwo doch mal Bandbreite flöten geht? Zumal er dann auch ein passendes Board bräuchte, ist ein Thema über das man genau nachdenken muss. Zu mal er Sockel 2011 auch mit größeren Xeons nachrüsten könnte, da es da ja noch den Ivy-Ableger geben wird. Bei AMD gibt es eine spätere Aufrüst-option bestimmt auch, aber da ist das was kommen wird etwas nebulös gerade.. ;)
 
Ich sag ja nciht, dass das unmöglich ist nur, kann ein Software-Wechel im Profibereich auch sau teuer sein.

Jup mein frisches Adobe Premiere Pro cs6 hat mir da auch einen Einblick gegeben ;) doch wenn ich sehe, was meine 650TI schafft und mein 3770k @ 4,4 Ghz, da sieht der i7 wie ne krücke aus, was jetzt den videoberech bei mir angeht.

die Rechnung wäre ja zur zeit:

neues Programm + GPU.

wenn das Program 1000 € und GPU nochmal 1000€, wäre man nach meiner schätzung bei mindestens faktor 3 und mehr, statt bei den verlangtem faktor 2.

Da er rein garnichts weiter aufrüsten muss.

Der ECC Speicher für server fällt schließlich auch flach bei GPU berechnung. Oder sehe ich das falsch?
 
Zuletzt bearbeitet:
Softwarewechsel sollte genau überlegt sein. Vor allem scheint Gustav007 nicht bedacht zu haben, das Software auch eine gewisse Einarbeitungszeit nötig hat. Dazu kommt, das man hier und dort sicher diverse Arten von Templates usw. verwenden wird. Heist also, es muss sich gänzlich neu eingearbeitet werden. Dazu kommt, es müssen alle Geschichten umportiert bzw. neu erstellt werden usw.
Ob das kostentechnisch lohnt ist fraglich. Lässt sich aber nur vom TE klären.

Fakt scheint jedoch zu sein, das der Softwarehersteller der aktuell verwendeten Software scheinbar an einer GPU Unterstützung arbeitet, steht zumindest oben ;) Je nachdem, wie lange die dafür brauchen, wäre das aber wohl die entspanntere Alternative ;) Da man die vertraute Umgebung inkl. allem drum und dran so fast 1:1 dann mit GPU Unterstützung händeln könnte. Um die Zeit bis dahin zu überbrücken, wäre so oder so ein schnelleres System nötig.
Heute den Faktor ~2 einsparen mit nem schnelleren System und dann wenn die Software soweit ist, kann man immernoch die Hütte mit GPUs vollballern ;)
 
Softwarewechsel sollte genau überlegt sein. Vor allem scheint Gustav007 nicht bedacht zu haben, das Software auch eine gewisse Einarbeitungszeit nötig hat. Dazu kommt, das man hier und dort sicher diverse Arten von Templates usw. verwenden wird. Heist also, es muss sich gänzlich neu eingearbeitet werden. Dazu kommt, es müssen alle Geschichten umportiert bzw. neu erstellt werden usw.
Ob das kostentechnisch lohnt ist fraglich. Lässt sich aber nur vom TE klären.

Fakt scheint jedoch zu sein, das der Softwarehersteller der aktuell verwendeten Software scheinbar an einer GPU Unterstützung arbeitet, steht zumindest oben ;) Je nachdem, wie lange die dafür brauchen, wäre das aber wohl die entspanntere Alternative ;) Da man die vertraute Umgebung inkl. allem drum und dran so fast 1:1 dann mit GPU Unterstützung händeln könnte. Um die Zeit bis dahin zu überbrücken, wäre so oder so ein schnelleres System nötig.
Heute den Faktor ~2 einsparen mit nem schnelleren System und dann wenn die Software soweit ist, kann man immernoch die Hütte mit GPUs vollballern ;)

Über die Einarbeitung in die neue Software war ich mir schon im Klarem. Ist als Contra zu verbuchen. Blos spricht Pro eben für sich, die Leistung und das brachial. Müsste sich der TE mal zu melden. Und wenn es soweit ist, müsste man sich wirklich wie mick schon meinte mit der plattform beschäftigen.

Nur zum jetzigem Zeitpunkt bräuchte er sich nur eine Dual - GPU Grafikkarte einbauen, was die hardware betrifft.

Später könnte man dann wenn er aufrüsten will über die zukünftige Plattform unterhalten, wenn es um bis zu 4 dualGPU karten geht.


Hier mal was gefunden:

Werden die intensiven Matrizenberechnungen einer der beiden Solver auf NVIDIA GPUs durchgeführt und eine heterogene Berechnung mit GPU und CPU verwendet, kann die Solver-Geschwindigkeit, im Vergleich zu einem reinen CPU-Mehrfachkern-Ansatz, signifikant gesteigert werden. Diese innovative – auf Message Passing Interface (MPI) zur Verteilung über mehrere GPUs unter Verwendung von NVIDIA® CUDA® und multiplen CPU-Kernen mit OpenMP Paralellisierung basierende – hybride Parallelisierung, ermöglicht eine enorme Reduzierung der Lösungszeit. Testergebnisse, bei denen eine NVIDIA Tesla® M2090 GPU verwendet wurde, haben, verglichen mit einer neuen Sechskern-CPU beim Ablauf der gleichen Simulation, eine Leistungsverbesserung um den Faktor 4 gezeigt.

Quelle: http://www.altair.de/(S(vbupbo5cn02...s_country=de-DE&AspxAutoDetectCookieSupport=1


Und das ist -eine- GPU. So würde beim jetzigem Umrüsten faktor 5 entstehen.
 
Zuletzt bearbeitet:
mal so am 'Rande,

schonmal über alternative software nachgedacht? CPU<GPU

Tesla Server-Grafikprozessoren für High Performance Computing | NVIDIA

Ja im ersten Post:
(laut Aussage vom Support) und hat leider keine CUDA Unterstüztung oder ähnliches.

Und das ist -eine- GPU. So würde beim jetzigem Umrüsten faktor 5 entstehen.
Nein, es würde der Faktor 1 entstehen, da sein Programm mit ner GPU im Moment soviel anfangen kann wie mit nem kleinen Steak.

Außerdem braucht er für GPUs sowieso ein Mainboard mit vielen GPU-Slots, das kann er bedenken, wenn er sich das Dual Xeon System zusammenstellt und dann - wenn die Software denn mal soweit ist - ggf. einfach aufrüsten. Jetzt braucht man aber nicht darüber zu reden, das ist nur Gackern über ungelegte Eier.
 
Faktor 5 bei der Leistung einer Software, die er nicht kennt, die dazu noch Geld kostet und wo es nichtmal klar ist, ob diese Art von Berechnungen auch an das optimale Ergebnis von dort ranreichen werden. Dazu kommt. Tesla M2090 und dessen Preis von ganz schlappen ~3900€ :fresse:
Hewlett-Packard HP Tesla M2090 6144MB Single GPU Grafikkarte: Grafikkarte Preisvergleich - Preise bei idealo.de

Heist also unterm Strich, ca. Faktor 4-5 bei doppeltem Preis als Budgetmaximum.
Das gleiche kannst du natürlich auch gegen eine CPU Version hochrechen. Beispielsweise ein hochtaktendes 2x Achtkern Intel Xeon Setup bekommst du für ~4000€ auf die Beine gestellt. -> ebenso Faktor 4 ca.
Und das ohne Einarbeitungszeit in die neue Software ;) + die Option, später noch GPUs nachzurüsten, wenn die Software mal soweit ist.
 
mannoman, immer diese Haarspalterei.

@ Opteron

mal so am 'Rande,

schonmal über alternative software nachgedacht? CPU<GPU

Tesla Server-Grafikprozessoren für High Performance Computing | NVIDIA

Das habe ich geschrieben

und du schreibst:
Ja im ersten Post:
(laut Aussage vom Support) und hat leider keine CUDA Unterstüztung oder ähnliches.

Was hat das denn mit dem nachdenken über eine alternative software zu tun?

Und natürlich brächte er die neue software mit GPU unterstützung wenn er wie in meinem beschriebenem fall auf eine GPU setzt, diese verbindung ist faktor 5 mit seiner jetzigem CPU.

Wenn er mit einem 2600k berechnet, warum dann nicht mit einer Dual GPU karte ala`GTX 690 ( Faktor 8 - 10 ? )? ECC Ram nutzt er zur Zeit auch nicht.

Professionell ist das ganze eh nicht. muss nur zuverlässig sein.


Und damit bin ich dann auch raus aus dem Thema bis sich der TE gemeldet hat, wollte nur ein wenig über den Tellerrand schauen vermitteln. ;) keine Abschlachtung von ideen...
 
Zuletzt bearbeitet:
Gamerkarten sowie der GK104 sind denkbar ungeeignet, denn diese bieten gerade mal 1/24 der SP Leistung auch in DP ;) Ich glaube bei Fermi (GF100/110) war das Verhältnis immerhin noch 1/8.
Damit ziehst du nichtmal die aktuelle CPU ab :fresse:
Wenn dann muss es eine Quadro bzw. Tesla sein auf Fermi Basis sein. Oder K20(X) GK110 Tesla. Nur sind diese eben wie erwähnt auch schweine teuer...
Die erwähnte M2090 ist der Vollausbau von GF100/110. Mit dem DP/SP Verhältnis von 1/2. Da geht dann schon einiges, wenn die Software passt.

EDIT:
irgendwie werde ich das Gefühl nicht los, das es sich hier viele schlicht zu einfach machen...
Das ist kein Gamer PC, wo einfach nur durch ne 300€ Grafikkarte die Leistung enorm gesteigert werden kann :fresse:
 
Zuletzt bearbeitet:
EDIT:
irgendwie werde ich das Gefühl nicht los, das es sich hier viele schlicht zu einfach machen...

Desswegen ist es ja interessant hinterfragt zu werden. Das mit der DP/SP beschneidung von den kunsumerkarten wusste ich bis jetzt z.B. noch nicht. ;) vorallem die Dimension 1/24 ? Das ist heftig!

EDIT:

Grade einen TEst gesehen, DP ist eine GTX 580 bei Faktor 2,64 zu GTX680 bei Faktor 0,84 :Fresse:
 
Zuletzt bearbeitet:
1/24 liegt an Kepler GK104 ;) Die K5000 Quadro hat soweit ich das auf die schnelle sehe, das selbe DP/SP Verhältnis.
Bei den Fermis war es nicht ganz so schlimm :fresse:

Hintergrund sollte aber auch klar sein. Warum ne 5000€ Tesla/Quadro kaufen, wenn es ne Geforce mit doppeltem RAM auch tut ;) Irgendwo her muss die Kohle ja kommen.
Gamerkarten sind genau dort interessant, wo allein SP Leistung gefragt ist. Gerade die Geforce GPUs mit CUDA Support stehen hier und dort bei einigen Anwendungen hoch im Kurs.

Geht es aber um Simulationen und Co. HPC Bereich usw. kommt man idR nicht um die Profikarten rum. Es sei denn, dort bewegt man sich auch mit einfacher Prezision. (was aber meine ich eher selten ist)
Oft genug vergleicht man sogar allein die DP Leistung.

PS: wenn es danach geht, mit ner GTX 580 ziehst du sogar in Sachen DP Leistung ne K5000 Quadro bzw. GTX 680 ab. Einfach weil das Verhältnis so schlecht ist.

EDIT:
eventuell wären AMD Modelle eine Alternative. Ich meine, dort war die DP/SP Leistung zwischen Gamer und Profikarte gleich... Könnte mich aber auch irren.
Bei den AMDs müsste das Verhältnis 1/4 sein. Sowohl bei den FirePro/FireGL als auch den Radeon Modellen.
 
Zuletzt bearbeitet:
1/24 liegt an Kepler GK104 ;) Die K5000 Quadro hat soweit ich das auf die schnelle sehe, das selbe DP/SP Verhältnis.
Bei den Fermis war es nicht ganz so schlimm :fresse:

Hintergrund sollte aber auch klar sein. Warum ne 5000€ Tesla/Quadro kaufen, wenn es ne Geforce mit doppeltem RAM auch tut ;) Irgendwo her muss die Kohle ja kommen.
Gamerkarten sind genau dort interessant, wo allein SP Leistung gefragt ist. Gerade die Geforce GPUs mit CUDA Support stehen hier und dort bei einigen Anwendungen hoch im Kurs.

Geht es aber um Simulationen und Co. HPC Bereich usw. kommt man idR nicht um die Profikarten rum. Es sei denn, dort bewegt man sich auch mit einfacher Prezision. (was aber meine ich eher selten ist)
Oft genug vergleicht man sogar allein die DP Leistung.

PS: wenn es danach geht, mit ner GTX 580 ziehst du sogar in Sachen DP Leistung ne K5000 Quadro bzw. GTX 680 ab. Einfach weil das Verhältnis so schlecht ist.

EDIT:
eventuell wären AMD Modelle eine Alternative. Ich meine, dort war die DP/SP Leistung zwischen Gamer und Profikarte gleich... Könnte mich aber auch irren.
Bei den AMDs müsste das Verhältnis 1/4 sein. Sowohl bei den FirePro/FireGL als auch den Radeon Modellen.

Welches Program bietet sich für einen Benchmark an ?
 
schwierig... Vereinfacht gesagt, hängt die Performance stark vom Content, der Berechnungen, der Menge usw. ab. Es kann sein, das man auf eine GPU hin massiv optimiert hat, eine andere aber ganz beschissen läuft. VRAM spielt eine größere Rolle usw.

Für sinnige Vergleiche muss man schon das Benchen, was auch geplant wird, einzusetzen. Sonst sind die Vergleiche vollkommen für die Katz ;)
 
mal so am 'Rande,

schonmal über alternative software nachgedacht? CPU<GPU

Tesla Server-Grafikprozessoren für High Performance Computing | NVIDIA

Ich melde mich nun auch mal wieder :).
Vllt kam es hier zu kleineren Missverständnissen. Ich studiere zur Zeit und verdiene mir mit dem Durchführen von Simulationen nebenher mein Geld. Sowohl die Software als auch die Hardware wird von meinem Arbeitgeber gestellt und steht bei mir im Zimmer. Beides könnte ich mir nie leisten. Wir reden hier von professioneller Speziallsimulationssoftware. Der Preis liegt irgendwo im mittleren FÜNFSTELLIGEN Bereich + jährlichen Wartungsvertag in Höhe von 20% des Neupreises. Wechseln ist also ausgeschlossen.
Früher, bevor ich das gemacht habe, stand der Rechner an einem seperaten Arbeitsplatzt bei meinem Arbeitgeber und der Ingeneur dort, hat versucht, neben seinem Tagesgeschäft auch noch das zu machen. Irgenwann kam er nicht mehr nach und es wurde an mich ausgelagert. (Ist ne lange Geschichte).

Die 2000 Euro Budget sind von meinem Chef genehmigt. Der will natürlich für sein investiertes Geld einen Mehrwehrt haben. Den 1. ich koste ihn im Vergleich zum Ingeneuer nicht all zuviel und 2. die reine Rechenzeit wird nicht vergütet. Sprich wie lange es rechnet ist ihm fast egal (außer der Termin drückt).
Generell kann man sagen, dass die Branche sich im Bezug auf Hardwareinvestitionen eh gespalten verhält, da die Software eigentlich immer um Faktor 10 bis 20 teuerer ist als die Maschine worauf es läuft.


Aber nun zur Hardware:
Mental habe ich mich schon für ein Dual Xeon System entschieden wie es Opteron vorgeschlagen hat. Welches Mainboard ist da zu empfehlen? Zudem ist die Frage welche Ausbaustufe des Xeons ich nehmen soll. Der ganz kleine 6 Kerner auf keinen Fall. Nur lohnen sich die 200 Euro Aufreis für den 2640?

@fdsonne
Du meintest das Asus sollte ich nicht nehmen. Hast du mit denen schlechte Erfahrungen gemacht?
 
Zuletzt bearbeitet:
Ich würde die 2640 oder 2650 vorschlagen, die sind P/L technisch sehr ordentlich dabei. Und du wirst bei halbwegs guter Skalierung auch ca. Faktor 2 erreichen ausgehend von jetzt dem 2700K.
Beim Board, neja ich sag mal so. Asus und auch EVGA sind Hersteller von Customer Boards. Im Serverbereich hingegen reagieren andere Unternehmen das Geschehen. SuperMicro bzw. Tyan allen voran ;)
Bei den beiden bist du definitiv gut aufgehoben, sowohl was Support als auch Stablität anbelangt. Der Desktopbereich setzt dort idR leicht andere Maßstäbe, gerade beim Thema Support sprich im Problemfall...

Mit einem Asusboard läuft die Geschichte mit großer Warscheinlichkeit auch, wäre nur nicht meine persönliche Wahl aus genannten Gründen.

Ich würde mir eins dieser Boards holen:
http://geizhals.at/de/?cat=mbxeon&s...+3.0~644_dual+Sockel-2011~493_16x+DDR3#xf_top
Bzw. wenn ein OnBoard SAS Controller für schnelle HDDs nötig sein sollte, aus den hier:
Intel Xeon mit Sockel: dual Sockel-2011, div. Schnittstellen: USB 3.0/SAS Preisvergleich | Geizhals Deutschland

Kannst du hingegen sogar auf USB3 verzichten bzw. setzt ne USB3 PCIe Steckkarte ein, wäre sogar was noch günstigeres möglich:
Intel Xeon mit Sockel: dual Sockel-2011, RAM-Steckplätze: 16x DDR3 Preisvergleich | Geizhals Deutschland

PS: Die Asusboards Dual S2011 sind übrigens vergleichsweise teuer.

Besonders drauf achten würde ich auf die Anzahl der RAM Slots. Einige Boards bieten dir gerade mal 8 RAM Slots. Sprich mir für Quadchannel nötige 2x4 Riegel wärst du wiederum am Ausbau Limit ;) -> macht keinen Sinn.

Wäre also ohne USB3 ca. 300-350€, mit USB3 OnBoard ca. 360-430€ sowie wenn SAS nötig ist, ~430€.
 
Zuletzt bearbeitet:
Welches Program bietet sich für einen Benchmark an ?
Gromacs und cp2k bieten sich für CUDA Vergleiche an. Gromacs dürfte einfacher sein, daß es sich relativ einfach unter Linux compilieren läßt (ein Windows Build ist komplizierter) und es fertige Benchmarks gibt. Gromacs in einer älteren Version ist Teil der SPECbench Suite.
 
@TE na ich hoffe du laesst dir auch den deutlich erhoehten Stromverbrauch von einem dickerem System bezahlen... hab selbst 2 3930k auf 4.2 mit 20GB Infiniband vernertzt bei mir daheim stehen, aber die verwend ich nur, wenns schnell gehen muss und der Cluster von der Uni mal wieder vollkommen ueberlastet ist ~700Watt sind eben schon ein bisschen Kohle die du da im Monat an Strom zahlst!
Wegen der ganzen ECC Geschichte bin ich aber auch am ueberlegen mir Xeons oder Opterons zuzulegen. Da das aber von einem Chef bezahlt wird, denke ich nicht dass auch gebrauchte CPUs gehen wuerden. Wenn doch die Magny Core Opterons gibts relativ billig. (Unter Linux lassen die sich scheinbar auch mit einem mobdifizierten Bios von Tear aus dem Hardforum uebertakten...wenns eine Linuxversion von dem Programm gibt!)
Nebenbei frohe Weihnachte!
 
@all noch ein frohes Weihnachtsfest!

Mit dem Strom wird man sich sicher einig.

Von gebrauchter Hardware sowie Overclocking würde ich aus Stabilitätsgründen lieber Abstand nehmen. Letztenendes wurde es ein System bestehen aus

2 x Xeon 2630 (der 2640 hat leider das Budget gesprengt...)
1 x Supermicro X9DAE
32 GB ECC Ram
+ Perpherie

entschieden. Die Hardware wurde bestellt. Ich hoffe in der ersten Januar Woche loslegen zu können. Ich versuche einige Benchmarks mit dem Programm zu fahren. Mal schauen wer am besten geschätzt hat, wie gut das Prog auf NUMA Nodes skaliert!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh