代码拉取完成,页面将自动刷新
package io500
import "strconv"
var rnStr = "\n"
type ApiItem struct {
// 测试的通用API(为了创建/删除datadir,额外的选项将被传递给IOR/mdtest)
Api string `json:"api"`
}
func (apiItem ApiItem) ConfigData() string {
return "API = " + apiItem.Api + rnStr
}
type VerbosityItem struct {
Verbosity int64 `json:"verbosity"`
}
func (item VerbosityItem) ConfigData() string {
if item.Verbosity == 0 {
return "verbosity = " + rnStr
} else {
return "verbosity = " + strconv.Itoa(int(item.Verbosity)) + rnStr
}
}
type Global struct {
// The directory where the IO500 runs IO500所在目录
DataDir string `json:"datadir"`
// 数据目录以时间戳作为后缀。 对于并发运行几个IO500测试很有用。
TimestampDataDir bool `json:"TimestampDataDir"`
// The result directory
ResultDir string `json:"resultDir"`
// 结果目录以时间戳作为后缀。 对于并发运行几个IO500测试很有用。
TimestampResultdir bool `json:"timestampResultdir"`
Api string `json:"api"`
// 清除缓存,这对测试很有用,并且对单节点运行很有用
DropCaches bool `json:"dropCaches"`
// 缓存清除命令,在每个I/O阶段之前调用
DropCachesCmd string `json:"dropCachesCmd"`
// 在GPU上分配I/O缓冲区
IoBuffersOnGpu bool `json:"ioBuffersOnGpu"`
VerbosityItem
// 使用学生分组比赛的规则
Scc bool `json:"scc"`
}
func (g Global) ConfigData() string {
res := ""
res += "[global]"
res += rnStr
res += "datadir = " + g.DataDir
res += rnStr
if g.TimestampDataDir {
res += "timestamp-datadir = TRUE"
} else {
res += "timestamp-datadir = FALSE"
}
res += rnStr
res += "resultdir = " + g.ResultDir
res += rnStr
if g.TimestampResultdir {
res += "timestamp-resultdir = TRUE"
} else {
res += "timestamp-resultdir = FALSE"
}
res += rnStr
res += "api = " + g.Api + rnStr
if g.DropCaches {
res += "drop-caches = TRUE"
} else {
res += "drop-caches = FALSE"
}
res += rnStr
res += "drop-caches-cmd = " + g.DropCachesCmd
res += rnStr
if g.IoBuffersOnGpu {
res += "io-buffers-on-gpu = TRUE"
} else {
res += "io-buffers-on-gpu = FALSE"
}
res += rnStr
res += g.VerbosityItem.ConfigData()
if g.Scc {
res += "scc = TRUE"
} else {
res += "scc = FALSE"
}
res += rnStr
return res
}
type Debug struct {
StonewallTime int64 `json:"stonewallTime"`
}
func (g Debug) ConfigData() string {
res := ""
res += "[debug]"
res += rnStr
res += "stonewall-time = " + strconv.Itoa(int(g.StonewallTime))
res += rnStr
return res
}
type BlockSizeItem struct {
BlockSize string `json:"blockSize"`
}
func (item BlockSizeItem) ConfigData() string {
if item.BlockSize == "" {
return "blockSize = " + rnStr
} else {
return "blockSize = " + item.BlockSize + rnStr
}
}
type RunItem struct {
Run bool `json:"run"`
}
func (item RunItem) ConfigData() string {
if item.Run {
return "run = TRUE" + rnStr
} else {
return "run = FALSE" + rnStr
}
}
type IorEasy struct {
ApiItem
TransferSize string `json:"transferSize"`
BlockSizeItem
FilePerProc bool `json:"filePerProc"`
UniqueDir bool `json:"uniqueDir"`
RunItem
VerbosityItem
}
func (i IorEasy) ConfigData() string {
res := ""
res += "[ior-easy]"
res += rnStr
res += i.ApiItem.ConfigData()
res += "transferSize = " + i.TransferSize
res += rnStr
res += "blockSize = " + i.BlockSize
res += rnStr
if i.FilePerProc {
res += "filePerProc = TRUE"
} else {
res += "filePerProc = FALSE"
}
res += rnStr
if i.UniqueDir {
res += "uniqueDir = TRUE"
} else {
res += "uniqueDir = FALSE"
}
res += rnStr
res += i.RunItem.ConfigData()
res += i.VerbosityItem.ConfigData()
return res
}
type IorEasyWrite struct {
ApiItem
}
func (i IorEasyWrite) ConfigData() string {
res := ""
res += "[ior-easy-write]"
res += rnStr
res += i.ApiItem.ConfigData()
return res
}
type IorRnd struct {
ApiItem
BlockSizeItem
RunItem
VerbosityItem
RandomPrefill int64 `json:"randomPrefill"`
}
func (i IorRnd) ConfigData() string {
res := ""
res += "[ior-rnd]" + rnStr
res += i.ApiItem.ConfigData()
res += i.BlockSizeItem.ConfigData()
res += i.RunItem.ConfigData()
res += i.VerbosityItem.ConfigData()
res += "randomPrefill = " + strconv.Itoa(int(i.RandomPrefill)) + rnStr
return res
}
type IorRndWrite struct {
ApiItem
}
func (i IorRndWrite) ConfigData() string {
res := "[ior-rnd-write]" + rnStr
res += i.ApiItem.ConfigData()
return res
}
type NItem struct {
N int64 `json:"n"`
}
func (i NItem) ConfigData() string {
return "n = " + strconv.Itoa(int(i.N)) + rnStr
}
type MDTestEasy struct {
ApiItem
NItem
RunItem
}
func (i MDTestEasy) ConfigData() string {
res := "[mdtest-easy]" + rnStr
res += i.ApiItem.ConfigData()
res += i.NItem.ConfigData()
res += i.RunItem.ConfigData()
return res
}
type MDTestEasyWrite struct {
ApiItem
RunItem
}
func (i MDTestEasyWrite) ConfigData() string {
res := "[mdtest-easy-write]" + rnStr
res += i.ApiItem.ConfigData()
res += i.RunItem.ConfigData()
return res
}
type MDWorkBench struct {
ApiItem
WaitingTime float64 `json:"waitingTime"`
PreCreatePerSet string `json:"preCreatePerSet"`
FilesPerProc string `json:"filesPerProc"`
RunItem
VerbosityItem
}
func (i MDWorkBench) ConfigData() string {
res := "[mdworkbench]" + rnStr
res += i.ApiItem.ConfigData()
// todo 0E+00
res += "waitingTime = 0" + rnStr // + strconv.FormatFloat(i.WaitingTime, 'E', -1, 64) + rnStr
res += "precreatePerSet = " + i.PreCreatePerSet + rnStr
res += "filesPerProc = " + i.FilesPerProc + rnStr
res += i.RunItem.ConfigData()
res += i.VerbosityItem.ConfigData()
return res
}
type MDWorkBenchCreate struct {
RunItem
}
func (i MDWorkBenchCreate) ConfigData() string {
res := "[mdworkbench-create]" + rnStr
res += i.RunItem.ConfigData()
return res
}
type Timestamp struct {
}
func (i Timestamp) ConfigData() string {
res := "[timestamp]" + rnStr
return res
}
type FindBase struct {
ExternalScript string `json:"externalScript"`
ExternalMpiArgs string `json:"externalMpiArgs"`
ExternalExtraArgs string `json:"externalExtraArgs"`
NProc string `json:"nproc"`
RunItem
PFindQueueLength int64 `json:"pFindQueueLength"`
PFindStealNext bool `json:"pfindStealNext"`
PFindParallelizeSingleDirAccessUsingHashing bool `json:"pFindParallelizeSingleDirAccessUsingHashing"`
}
func (i FindBase) ConfigData() string {
res := ""
if i.ExternalScript == "" {
res += "external-script = " + rnStr
} else {
res += "external-script = " + i.ExternalScript + rnStr
}
if i.ExternalMpiArgs == "" {
res += "external-mpi-args = " + rnStr
} else {
res += "external-mpi-args = " + i.ExternalMpiArgs + rnStr
}
if i.ExternalExtraArgs == "" {
res += "external-extra-args =" + rnStr
} else {
res += "external-extra-args =" + i.ExternalExtraArgs + rnStr
}
if i.NProc == "" {
res += "nproc = " + rnStr
} else {
res += "nproc = " + i.NProc + rnStr
}
res += i.RunItem.ConfigData()
res += "pfind-queue-length = " + strconv.Itoa(int(i.PFindQueueLength)) + rnStr
if i.PFindStealNext {
res += "pfind-steal-next = TRUE" + rnStr
} else {
res += "pfind-steal-next = FALSE" + rnStr
}
if i.PFindParallelizeSingleDirAccessUsingHashing {
res += "pfind-parallelize-single-dir-access-using-hashing = TRUE" + rnStr
} else {
res += "pfind-parallelize-single-dir-access-using-hashing = FALSE" + rnStr
}
return res
}
type FindEasy struct {
FindBase
}
func (i FindEasy) ConfigData() string {
return "[find-easy]" + rnStr + i.FindBase.ConfigData() + rnStr
}
type CollectiveItem struct {
Collective string `json:"collective"`
}
func (i CollectiveItem) ConfigData() string {
return "collective = " + i.Collective + rnStr
}
type IorHard struct {
ApiItem
SegmentCount int64 `json:"segmentCount"`
CollectiveItem
RunItem
VerbosityItem
}
func (i IorHard) ConfigData() string {
res := "[ior-hard]" + rnStr
res += i.ApiItem.ConfigData()
res += "segmentCount = " + strconv.Itoa(int(i.SegmentCount)) + rnStr
res += i.CollectiveItem.ConfigData()
res += i.RunItem.ConfigData()
res += i.VerbosityItem.ConfigData()
res += rnStr
return res
}
type IorHardWrite struct {
ApiItem
CollectiveItem
}
func (i IorHardWrite) ConfigData() string {
res := "[ior-hard-write]" + rnStr
res += i.ApiItem.ConfigData()
res += i.CollectiveItem.ConfigData()
res += rnStr
return res
}
type MDTestHard struct {
ApiItem
NItem
FilesPerDir string `json:"filesPerDir"`
RunItem
}
func (i MDTestHard) ConfigData() string {
res := "[mdtest-hard]" + rnStr
res += i.ApiItem.ConfigData()
res += i.NItem.ConfigData()
res += "files-per-dir = " + i.FilesPerDir + rnStr
res += i.RunItem.ConfigData()
res += rnStr
return res
}
type MDTestHardWrite struct {
ApiItem
RunItem
}
func (i MDTestHardWrite) ConfigData() string {
res := "[mdtest-hard-write]" + rnStr
res += i.ApiItem.ConfigData()
res += i.RunItem.ConfigData()
res += rnStr
return res
}
type Find struct {
FindBase
}
func (i Find) ConfigData() string {
return "[find]" + rnStr + i.FindBase.ConfigData() + rnStr
}
type IorRndRead struct {
ApiItem
}
func (i IorRndRead) ConfigData() string {
return "[ior-rnd-read]" + rnStr + i.ApiItem.ConfigData() + rnStr
}
type FindHard struct {
FindBase
}
func (i FindHard) ConfigData() string {
return "[find-hard]" + rnStr + i.FindBase.ConfigData() + rnStr
}
type MDWorkBenchBench struct {
RunItem
}
func (i MDWorkBenchBench) ConfigData() string {
return "[mdworkbench-bench]" + rnStr + i.RunItem.ConfigData() + rnStr
}
type IorEasyRead struct {
ApiItem
}
func (i IorEasyRead) ConfigData() string {
return "[ior-easy-read]" + rnStr + i.ApiItem.ConfigData() + rnStr
}
type MDTestEasyStat struct {
ApiItem
RunItem
}
func (i MDTestEasyStat) ConfigData() string {
return "[mdtest-easy-stat]" + rnStr + i.ApiItem.ConfigData() + i.RunItem.ConfigData() + rnStr
}
type IorHardRead struct {
ApiItem
CollectiveItem
}
func (i IorHardRead) ConfigData() string {
return "[ior-hard-read]" + rnStr + i.ApiItem.ConfigData() + i.CollectiveItem.ConfigData() + rnStr
}
type MDTestHardStat struct {
ApiItem
RunItem
}
func (i MDTestHardStat) ConfigData() string {
return "[mdtest-hard-stat]" + rnStr + i.ApiItem.ConfigData() + i.RunItem.ConfigData() + rnStr
}
type MDWorkBenchDelete struct {
RunItem
}
func (i MDWorkBenchDelete) ConfigData() string {
return "[mdworkbench-delete]" + rnStr + i.RunItem.ConfigData() + rnStr
}
type MDTestEasyDelete struct {
ApiItem
RunItem
}
func (i MDTestEasyDelete) ConfigData() string {
return "[mdtest-easy-delete]" + rnStr + i.ApiItem.ConfigData() + i.RunItem.ConfigData() + rnStr
}
type MDTestHardRead struct {
ApiItem
RunItem
}
func (i MDTestHardRead) ConfigData() string {
return "[mdtest-hard-read]" + rnStr + i.ApiItem.ConfigData() + i.RunItem.ConfigData() + rnStr
}
type MDTestHardDelete struct {
ApiItem
RunItem
}
func (i MDTestHardDelete) ConfigData() string {
return "[mdtest-hard-delete]" + rnStr + i.ApiItem.ConfigData() + i.RunItem.ConfigData()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。