The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
forking i Flertrådsdatabehandling program skyrulz UNIX for Advanced & ekspertbrukere 0 04-22-2009 02:57
utføre kommandoen Flertrådsdatabehandling util uten programmering umen Shell programmering og Skripting 0 12-07-2008 06:01
Har du problemer med å skrive en grunnleggende shell-programmet SeanWuzHere Shell programmering og Skripting 3 11-30-2006 01:41
grunnleggende matematiske program 4 barn perleo High Level Programmering 9 10-22-2002 04:51
Komme Errno i Flertrådsdatabehandling program S. Vishwanath High Level Programmering 2 03-25-2002 09:58

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 104
Basic Flertrådsdatabehandling program

Jeg vil skrive et program (jeg er fleksibel på språket, C / C + + var min opprinnelige idé, men et skriptspråk ville trolig bli bedre) som går hundrevis av programmer, men bare N \u003d 4 (si) på en gang. Ideen er å beholde alle kjernene på en flerkjernet maskin opptatt.

Hvordan kan jeg gjøre dette? Spesielt vil jeg et bibliotek kaller jeg kan gjøre i noen aktuelle språket som kan
  • Start en ny tråd
  • Start et kommandolinjeverktøy prosessen i tråd med vilkårlige argumenter
  • Kjenne igjen når prosessen er fullført, returnerer informasjonen til hovedtråden og avslutte hjelpegrensesnitt / slave thread
  • Ideelt sende og motta informasjon om standard inn / ut
Dette virker som en helt grunnleggende ting å spørre, jeg er bare ute etter noe som ville gjøre dette enkelt. Jeg er trolig kommer til å skrive mange programmer som dette til ulike oppgaver, og jeg trodde det ville være greit å spørre rundt før dykking til noe som ikke er helt riktig. Jeg begynte å lese om (ny) Python tråder tidligere før jeg tenkte å spørre om råd / hjelp.
  #2 (permalink)  
Old 06-14-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Bli Dato: desember 2008
Sted:. Ved
Innlegg: 1843
Kan du gi oss litt mer informasjon?
  • Hvordan får du listen over programmer som skal kjøre?
  • Er det noen avhengigheter mellom programmene? Hvis ja, hvordan vil du beskrive dem?
  • Hva skal skje med stdout / stderr? Utdata til konsollen eller lagres et sted?
  • Gjøre programmene krever en form for skriving når de kjører?
  #3 (permalink)  
Old 06-14-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Bli Dato: desember 2003
Sted: Florida
Innlegg: 1917
Hva OS er du planlegger å bruke dette programmet på? Kan du kontrollere prosessor tilhørighet på dette OS?
  #4 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 104
Sitat:
Originally Posted by pludi View Post
Hvordan får du listen over programmer som skal kjøre?
Programmet vil lese i en tekstfil med en rekke tall, gjøre noen prosessering på dem, og deretter opprette en matrise basert på disse tallene. Hvert element i matrisen vil være gjennom en funksjon som vil lage en passende data angitt for denne oppføringen. Dataene vil bli brukt til å lage en midlertidig fil, og en kommandolinje argumentet bruker denne filen.

Jeg ikke trodde dette var relevant før så jeg ikke nevne det. I utgangspunktet programmet gjør noe arbeid og kommer opp med en liste over kommandoer for å kjøre.

Sitat:
Originally Posted by pludi View Post
Er det noen avhengigheter mellom programmene? Hvis ja, hvordan vil du beskrive dem?
Ah, det er et ganske viktig spørsmål jeg glemte å ta opp! De er uavhengige. Avhengigheter gjøre for kompliserte programmer mine er bare en enkel en.

Sitat:
Originally Posted by pludi View Post
Hva skal skje med stdout / stderr? Utdata til konsollen eller lagres et sted?
Jeg ønsker at det skal sendes tilbake til programmet som en streng, hvis mulig. Det bør ikke bli vist.

Sitat:
Originally Posted by pludi View Post
Gjøre programmene krever en form for skriving når de kjører?
Denne jeg jobber på ikke, men jeg vil gjerne ha en metode som kunne sende inn fordi andre lignende programmer Jeg skal skrive sannsynligvis må gjøre dette.

----- Innlegg Update -----

Sitat:
Originally Posted by fpmurphy View Post
Hva OS er du planlegger å bruke dette programmet på? Kan du kontrollere prosessor tilhørighet på dette OS?
Jeg endret mitt OS til 64-bits Ubuntu 9.04. Programmene er prosessor-intensiv 64-bits programmer med liten medium minne overføringene.
  #5 (permalink)  
Old 06-14-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Bli Dato: desember 2008
Sted:. Ved
Innlegg: 1843
Sitat:
Originally Posted by CRGreathouse View Post
Programmet vil lese i en tekstfil med en rekke tall, gjøre noen prosessering på dem, og deretter opprette en matrise basert på disse tallene. Hvert element i matrisen vil være gjennom en funksjon som vil lage en passende data angitt for denne oppføringen. Dataene vil bli brukt til å lage en midlertidig fil, og en kommandolinje argumentet bruker denne filen.
Så har du en samling av data, transpose den til en annen form og deretter behandle den videre, ikke sant? Hvis du har tilgang til kilden for den siste delen av behandlingen, kan det være mulig å omskrive den ved hjelp av OpenMP (Wikipedia)? Sånn det skulle være portable på tvers av ulike OS ', prosessorer og flere kjerner, og du vil eliminere behovet for en sentral kontroll programmet.
  #6 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 104
Sitat:
Originally Posted by pludi View Post
Så har du en samling av data, transpose den til en annen form og deretter behandle den videre, ikke sant? Hvis du har tilgang til kilden for den siste delen av behandlingen, kan det være mulig å omskrive den ved hjelp av OpenMP (Wikipedia)? Sånn det skulle være portable på tvers av ulike OS ', prosessorer og flere kjerner, og du vil eliminere behovet for en sentral kontroll programmet.
De enkelte programmene er egentlig ikke parallelizable. (I CS sjargong, er de conjectured å være P-komplettUtenfor NC.) Det er gjort mange sekvensielle operasjoner til et enkelt stykke data. Det er derfor jeg vil kjøre dem enkeltvis.

Så i stedet jeg skrive et program for å finne den mest effektive løsningen for hver brikke, beregne sannsynlig runtime, løse et tilnærmet bin-pakning problemet, og planlegge hver over en brukervennlig tunable antall prosessorer.
  #7 (permalink)  
Old 06-14-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Bli Dato: desember 2008
Sted:. Ved
Innlegg: 1843
OK, fra hva du har lagt inn "til nå, den grunnleggende struktur ville være omtrent slik ut (pseudo-koden)
Code:
Read numbers from file
Process them
Create output files
Create array of commands to run
Total processes=0
While there are commands left
    pop a command from the stack
    fork() a subprocess
    In the child
        system() the command
    In the parent
        Total processes++
    If total processes >= 4
        wait() until any process returns
Skriving er egentlig ikke et problem her, siden gaffel () ed prosesser arver foreldrene fil beskrivere. Utdataene siden så langt jeg vet det er vanskelig å returnere data fra barn til foreldre uten delt minne eller lignende. Du kan lagre utdataene til en fil i hver barnet mitt endrede stdout like før systemet ().
Alternativt kan du kjøre exec () programmet selv, for å redusere gaffel-kurs, men jeg er ikke sikker på hvor godt dette vil fungere.
Plus, med shed_setaffinity kan du sette tilhørighet av prosessene (direkte det som CPU å bruke), men du trenger å spore hvilke CPU siste prosessen brukes.

Noen med mer erfaring med algoritmer har en bedre ide?
Reply

Hugseliste

Tags
flerkjernet, tråder

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 02:08.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0