server_scripts 0.0.8 → 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/server_scripts.rb +9 -0
- data/lib/server_scripts/computer/abci.rb +38 -6
- data/lib/server_scripts/parser/starpu_profile.rb +21 -0
- data/lib/server_scripts/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f1fcfa7acf474ee5e2995af309c00516764836c4
         | 
| 4 | 
            +
              data.tar.gz: 3e3567be1f67c495143ecabe583be364235cadf1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8996a1076526a5e44e58b649ae8daf11a520ed7cecbc2c26bd1eff94f2c6a7109e609f3ce995c00d333895303a9c9e6c47242b440306a551e2b803d88701176d
         | 
| 7 | 
            +
              data.tar.gz: 99e4065047cba125b88baf6a8f4f7391f926a7b9909ba7136d395f4bc584f1e671c9f65ae5caea0ef2aa5e74076c8ff6637124c0acd13f416c0a357ab57a627e
         | 
    
        data/lib/server_scripts.rb
    CHANGED
    
    | @@ -11,6 +11,7 @@ require 'server_scripts/version' | |
| 11 11 |  | 
| 12 12 | 
             
            module ServerScripts
         | 
| 13 13 | 
             
              class << self
         | 
| 14 | 
            +
                @@verbose = false
         | 
| 14 15 | 
             
                def system
         | 
| 15 16 | 
             
                  sys = ENV["SYSTEM_NAME"]
         | 
| 16 17 |  | 
| @@ -28,6 +29,14 @@ module ServerScripts | |
| 28 29 | 
             
                def group_name
         | 
| 29 30 | 
             
                  ENV["GROUP_NAME"]
         | 
| 30 31 | 
             
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def verbose
         | 
| 34 | 
            +
                  @@verbose
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def verbose= v
         | 
| 38 | 
            +
                  @@verbose = v
         | 
| 39 | 
            +
                end
         | 
| 31 40 | 
             
              end
         | 
| 32 41 | 
             
            end # module ServerScripts
         | 
| 33 42 |  | 
| @@ -1,19 +1,51 @@ | |
| 1 1 | 
             
            module ServerScripts
         | 
| 2 2 | 
             
              module Computer
         | 
| 3 3 | 
             
                class ABCI < Base
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  
         | 
| 6 | 
            -
                  def header(node_type: FULL_NODE)
         | 
| 7 | 
            -
                    h = %q{
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                  HEADER = %q{
         | 
| 8 6 | 
             
            #!/bin/bash
         | 
| 9 7 |  | 
| 10 8 | 
             
            #$ -cwd
         | 
| 11 9 | 
             
            #$ -l %{node_type}=%{nodes}
         | 
| 12 | 
            -
            #$ -l h_rt=%{ | 
| 10 | 
            +
            #$ -l h_rt=%{wall_time}
         | 
| 13 11 | 
             
            #$ -N %{job_name}
         | 
| 14 12 | 
             
            #$ -o %{out_file}
         | 
| 15 13 | 
             
            #$ -e %{err_file}
         | 
| 16 | 
            -
             | 
| 14 | 
            +
             | 
| 15 | 
            +
            . /etc/profile.d/modules.sh
         | 
| 16 | 
            +
            module load intel-mkl
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  }
         | 
| 19 | 
            +
                  FULL_NODE = "rt_F"
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  MODULES = {
         | 
| 22 | 
            +
                    "gcc" => "gcc",
         | 
| 23 | 
            +
                    "intel-mpi" => "intel-mpi",
         | 
| 24 | 
            +
                    "openmpi" => "openmpi",
         | 
| 25 | 
            +
                    "itac" => "intel-itac intel-vtune"
         | 
| 26 | 
            +
                  }
         | 
| 27 | 
            +
                  
         | 
| 28 | 
            +
                  def header
         | 
| 29 | 
            +
                    HEADER % {node_type: node_type, nodes: @nodes, wall_time: @wall_time,
         | 
| 30 | 
            +
                      job_name: @job_name, out_file: @out_file, err_file: @err_file}
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  def env_setter
         | 
| 34 | 
            +
                    str = "\n"
         | 
| 35 | 
            +
                    @env.each do |var, value|
         | 
| 36 | 
            +
                      str += "export #{var}=#{value}\n"
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    str
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  def job_submit_cmd batch_script:, res_id: nil
         | 
| 43 | 
            +
                    res = res_id ? " -ar #{res_id} " : ""
         | 
| 44 | 
            +
                    "qsub -g #{ServerScripts.group_name} #{res} #{batch_script}"
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  def module_load_cmd
         | 
| 48 | 
            +
                    "module load #{@modules.map { |m| MODULES[m] }.join(' ')}"
         | 
| 17 49 | 
             
                  end
         | 
| 18 50 | 
             
                end    
         | 
| 19 51 | 
             
              end
         | 
| @@ -59,11 +59,23 @@ module ServerScripts | |
| 59 59 | 
             
                  end
         | 
| 60 60 |  | 
| 61 61 | 
             
                  def extract_data_from_profiles
         | 
| 62 | 
            +
                    if ServerScripts.verbose
         | 
| 63 | 
            +
                      puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
         | 
| 64 | 
            +
                      puts "Parsing REGEX: #{@regex}"
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
                    
         | 
| 62 67 | 
             
                    Dir.glob(@regex) do |fname|
         | 
| 68 | 
            +
                      if ServerScripts.verbose
         | 
| 69 | 
            +
                        puts "--------------------------------------"
         | 
| 70 | 
            +
                        puts "Reading file #{fname}..."
         | 
| 71 | 
            +
                      end
         | 
| 72 | 
            +
                      
         | 
| 63 73 | 
             
                      proc_id = fname.match(@regex.gsub("*", "(\\d+)"))[1].to_i
         | 
| 64 74 | 
             
                      @time_hash[proc_id] = {}
         | 
| 65 75 | 
             
                      output = File.read(fname).split("\n")
         | 
| 66 76 | 
             
                      recent_cpu = nil
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                      puts("\tPROC ID: #{proc_id}") if ServerScripts.verbose
         | 
| 67 79 |  | 
| 68 80 | 
             
                      output.each do |line|
         | 
| 69 81 | 
             
                        cpu_match = line.match(/CPU\s(\d+)/)
         | 
| @@ -78,11 +90,20 @@ module ServerScripts | |
| 78 90 | 
             
                            @time_hash[proc_id][recent_cpu][:exec_time] = match_data[2].to_f / 1e3
         | 
| 79 91 | 
             
                            @time_hash[proc_id][recent_cpu][:sleep_time] = match_data[3].to_f / 1e3
         | 
| 80 92 | 
             
                            @time_hash[proc_id][recent_cpu][:overhead_time] = match_data[4].to_f / 1e3
         | 
| 93 | 
            +
                            if ServerScripts.verbose
         | 
| 94 | 
            +
                              puts("\t\tCPU ID: #{recent_cpu}")
         | 
| 95 | 
            +
                              puts("\t\t\tTotal Time: #{@time_hash[proc_id][recent_cpu][:total_time]}")
         | 
| 96 | 
            +
                              puts("\t\t\tExec Time: #{@time_hash[proc_id][recent_cpu][:exec_time]}")
         | 
| 97 | 
            +
                              puts("\t\t\tSleep Time: #{@time_hash[proc_id][recent_cpu][:sleep_time]}")
         | 
| 98 | 
            +
                              puts("\t\t\tOverhead Time: #{@time_hash[proc_id][recent_cpu][:overhead_time]}")
         | 
| 99 | 
            +
                            end
         | 
| 81 100 | 
             
                          end
         | 
| 82 101 | 
             
                          recent_cpu = nil
         | 
| 83 102 | 
             
                        end
         | 
| 84 103 | 
             
                      end
         | 
| 104 | 
            +
                      puts("--------------------------------------") if ServerScripts.verbose
         | 
| 85 105 | 
             
                    end
         | 
| 106 | 
            +
                    puts("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") if ServerScripts.verbose
         | 
| 86 107 | 
             
                  end
         | 
| 87 108 | 
             
                end # class
         | 
| 88 109 | 
             
              end # module Parser
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: server_scripts
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: '0.1'
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sameer Deshmukh
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-01- | 
| 11 | 
            +
            date: 2020-01-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: ptools
         |