dando nome para os arquivos com id do processador e o passo de tempo deve incluir no nome do arquivo [closed]

1

Estou usando o FORTRAN , desejo fornecer o nome do arquivo, como ele deve incluir o ID do processador do processador que criou o arquivo e a variável de etapa de tempo quando esse arquivo é criado. Como o nome do arquivo deve estar no seguinte formato *

filename_processorid_timestep.

para exa. file_00001_001, onde você está arquivo - nome do arquivo,
00001 - id processr,
001 - timestep

    
por Sachin Shinde 26.01.2017 / 07:20

2 respostas

0

Para obter o número principal em que seu processo é executado, você pode usar ps com a opção ps -o psr -p PID .

Para obter o PID atual para o processo em execução (script), você pode usar $$ .

Para obter o tempo em qualquer formato desejado, você pode usar date , por exemplo, para obter o tempo com timestamp format use date +"%s" .

Por exemplo:

filename="file"
script_PID="$$"
core_id="$(ps -o psr -p $script_PID  | tail -n1)"
timestamp="$(date +%s)"
touch "$filename_$core_id_$timestamp"

O resultado:

file_3_1485412526
    
por 26.01.2017 / 07:36
0

1) Para obter o ID do processo no Fortran, você pode usar a função getpid: link

2) Escreva o nome do arquivo calculado em uma string com um formato

Aqui está um exemplo:

program test
  implicit none
  character*(40) :: filename
  integer :: pid, getpid, timestep
  pid = getpid()
  timestep=1

  write(filename,'(''file_'',I5.5,''_'',I3.3)') pid, timestep

  open(unit=10,file=trim(filename),STATUS='UNKNOWN')
  write(10,*) 'hello'
  close(10)

end
    
por 26.01.2017 / 09:22

Tags