Go Back   UNIX och Linux Forum > Upp Forum > UNIX för avancerade & Expertanvändare
.
Google Site



UNIX för avancerade & Expertanvändare Expert-to-experten. Läs avancerade UNIX UNIX-kommandon, Linux operativsystem, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 12-19-2007
Registered User
 

Join Date: Nov 2006
Inlägg: 8
Användning av andra datorer för bearbetning

Hej

Jag har skrivit en C + +-program som gör några matematiska beräkningar, men problemet är att det tar alldeles för lång tid på en dator för att avsluta.

Finns det något sätt att göra mer än 1 dator behöver behandling så det kan processen snabbare?
Sponsrade länkar
  #2 (permalänk)  
Old 12-19-2007
porter porter is offline Forum Advisor  
Registered User
 

Join Date: Jan 2007
Inlägg: 2965
Ja.

Alternativ A. Kör den på en snabbare dator.

Efter att alternativen blir lite svårare ....

Kan du dela upp problemet så att olika datorer kan lösa olika delar av problemet självständigt?

Kan du dela upp det så att delar kan göras parallellt?

Har du en riktigt skit algoritm som kan mathmatically korrekt men är verkligen ineffektiv?

Kan du lösa problemet på olika upplösningar / noggrannhet så att du tillämpar olika mängder hästkrafter till olika delar av problemet?

Om du är nyfiken, att en av de senaste bevisen för minsta flyttar lösa Rubiks kub använt det sista av alternativen ....
  #3 (permalänk)  
Old 12-22-2007
Bakunin bakunin is offline Forum Staff  
Bughunter extraordinär
 

Join Date: maj 2005
Ort: I det vänstra byte av / dev / kmem
Inlägg: 1.669
Citat:
Ursprungligen postat av porter View Post
Y
Har du en riktigt skit algoritm som kan mathmatically korrekt men är verkligen ineffektiv?
Det skadar inte att kontrollera med "bibel programmering", gamla och nya testamentet, så att säga ;-)):

- Donald Knuth, The Art of Computer Programming
Beroende på ditt problem finns det Vol.1 (numeriska algoritmer), Vol.2 (Seminumerical algoritmer) och Vol.3 (Sorting and Searching)

- Robert Sedgewick, Algoritmer i C
Omfattar bara C utan av rent matematiska problem detta bör vara samma mer eller mindre.

Här är ett annat sätt: byta till ett språk som är bättre lämpade för att uppnå en beräkning makt än C - använd FORTRAN! Jag tror inte att mathlib av FORTRAN 77 någonsin har slagits för hastighet.

Bakunin
  #4 (permalänk)  
Old 12-23-2007
Registered User
 

Join Date: Dec 2007
Plats: Virginia, USA.
Inlägg: 251
Hjälper detta?
Vanliga frågor
  #5 (permalänk)  
Old 12-23-2007
drl's Avatar
Registered User
 

Join Date: april 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Inlägg: 775
Hej.

Mitt favoritcitat på detta område är:
Citat:
... tidigt optimeringen är roten till allt ont. "(Knuth, Donald. Strukturerad programmering med gå till Statements, Journal ACM Computing Surveys, Vol 6, nr 4, december 1974. s. 268.)
- Wikipedia, se nedan
Jag har haft turen att arbeta med Big Iron en stor del av mitt yrkesliv:
  • Control Data (CDC): 160, 1604, 6600 och följ-ons, 203, 205, ETA-10
  • Cray Research (CRI): Cray-1, Cray-2, Cray X-MP
  • IBM: 3090 (AIX)
  • Thinking Machines (TMC): CM-2 (.200), CM-5
Du kanske har gjort dina läxor prestandaproblem, men om inte, jag föreslår att du tittar på - en snabb-och-dirty-off-the-top-of-my-head-lista:En äldre bok som du skulle kunna få användas är:
Citat:
Titel: High Performance Computing
Subtitle: RISC arkitekturer, Optimization & Benchmarks
Författare: Charles Severance, Kevin Dowd
Upplaga: 2
Datum: 2 juli 1998
Förlag: O'Reilly
ISBN: 156592312X
Sidor: 460
Kategorier: höga prestanda, optimering, programmering, software design
Kommentarer: 5 stjärnor (4 recensioner, Amazon, 2007,12)
Kommentarer: (Jag har 1: a upplagan, 1993)
Flertalet av de förslag som anges ovan affischer är lämpliga vid någon tidpunkt i optimeringsprocessen. Jag har några principer som jag råda folk att tänka på:
-1: Är detta program / process / kod absolut, positivt behövs snabbare?

0) Make it springa rätt innan du gör det snabbare

1) tillbringar det mesta av din personliga tid att hitta den bästa algoritmen. Det finns en historia i Programming Pearls, J Bentley, om jämförelsen mellan en algoritm som genomförs i sammanställts Fortran på en Cray-1 mot en bättre algoritm för tolkning Basic på en Radio Shack TRS-80. Som du kan gissa, det Cray-1 krossade TRS-80 - åtminstone ett litet problem storlek. Eftersom storleken gick upp, övervann TRS-80 så småningom mäktiga Cray-1, och för de största börsnoterade storlek skulle Cray har tagit 95 år, de TRS-80 5,4 timmar.

En annan berättelse om algoritmer har att göra med utvecklingen i hårdvara. Det finns många algoritmer som har tagits bort eftersom de var för långsam - åtminstone på skalär maskiner. När parallell bearbetning blev verklighet, blev några av dem verkligen ineffektiva algoritmer sig vara spektakulärt användbar parallella boxar. Den CM-2 (200) ovan hade 32.000 processorer, men de var lite slice-datorer. De flesta människor använde läge där de ganged dem med 32s för att få en 1000-processor låda - duga för denna gången i datorer historia. Om du använde rätt algoritmen tillämpas på rätt problem, cranked att maskinen verkligen ut resultat. (Det var en "halv-gallon" maskin, "en gallon" hade 64K processorer.)

2) Profil / instrument din kod, utföra mätningar för att se var man spenderar sin tid, då spendera din dyrbara tid på dessa områden. För några år sedan gjorde jag tvärtom mot vad jag brukade göra. En kund bad mig att ta en kod som tidigare körde på en Cray och port den ska köras på en dator. Det var alldeles för invecklat en kod för att överväga en algoritm förändring (även om jag föreslog att deras domän experter titta på det). Jag profilerade den och såg att det tillbringade mycket tid gör IO. Det bästa tillvägagångssättet vid den tidpunkten var att fördela så mycket minne som möjligt till en RAM-disken. Som drabbade de modeller som jag använde genom att minska realtid med 30% (vi kanske hade förväntat oss mer, men så skedde allt med filsystem förare, så att koden inte behöver ändras). Om det fanns mer att göra, en RAID-0 över flera diskar skulle ha nästa.

Om du har några pengar, kanske är allt man behöver mer minne, eller en låda som har två eller fler processorer, ett konto i en computing servicebyrå, etc. Men jag föreslår att du tar ett steg tillbaka och betrakta alla alternativ och möjligheter att undvika förtida optimering fällan.

Mvh ... Skål, varselljus
  #6 (permalänk)  
Old 12-24-2007
Technorati Master
 

Join Date: mars 2005
Ort: löv i B + träd
Inlägg: 3.007
Vad sägs om att använda Hadoop?

Jag har inte varit in i den helt ännu.
Sponsrade länkar
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är Av


Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Hur många datorer Har du hemma? Neo Vad tänker du på? 86 10-04-2009 02:56
Pop upp dialogrutan på fjärrdatorer deaconf19 Shell-programmering och Skript 35 02-12-2009 02:01
Script för att få IP-adresser i LAN datorer sladuuch Shell-programmering och Skript 1 10-04-2005 04:10
två datorer en internet Dragos IP Nätverk 8 07-25-2005 11:56
två datorer - ett modem Pennywize UNIX for Dummies Frågor & Svar 3 11-27-2002 05:37



Alla tider är GMT -4. Klockan är nu 11:19.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2010. All Rights Reserved.Ad Management by RedTyger

Content Relevant webbadresser från vBSEO 3.2.0