// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::generateMPICommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string Swarm::generateMPICommand(string cmd) {

	//sbatch << "mpirun -prepend-rank -np 1 " << runCmd << " load " << sConf_ << " : -np " << options.swarmSize << " " << runCmd << " particle 0 run " << sConf_ << endl;
	string newCmd = "mpirun -nooversubscribe ";
	if (options.hostfile.size()) {
		newCmd += "-hostfile " + options.hostfile + " ";
	}
	cout<<"Swarm::generateMPICommand may need some modifications 654\n";
	newCmd += "-tag-output -np 1 " + cmd + " -a load -c " + sConf_[0] + " : -nooversubscribe ";
	if (options.hostfile.size()) {
		newCmd += "-hostfile " + options.hostfile + " ";
	}
	cout<<"Swarm::generateMPICommand may need some modifications 654\n";
	newCmd += "-tag-output -np " + toString(options.swarmSize) + " " + cmd + " -t particle -p 0 -a run -c" + sConf_[0];

	if (options.saveClusterOutput) {
		newCmd += " > " + options.outputDir + "/" + options.jobName + "_cluster_output/" + options.jobName + " 2>&1";
	}
	return newCmd;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movq %rdx, -0x2d8(%rbp)
movq %rdi, -0x2c0(%rbp)
movq %rdi, %rax
movq %rax, -0x2d0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movb $0x0, -0x19(%rbp)
leaq -0x1a(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x30a70
movq -0x2c0(%rbp), %rdi
movq -0x2b8(%rbp), %rdx
leaq 0xd580f(%rip), %rsi     # 0x1e2d32
callq 0x44470
jmp 0x10d52a
leaq -0x1a(%rbp), %rdi
callq 0x311c0
movq -0x2c8(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x300, %rdi            # imm = 0x300
callq 0x2f720
cmpq $0x0, %rax
je 0x10d60f
movq -0x2c8(%rbp), %rdx
addq $0x17c0, %rdx           # imm = 0x17C0
leaq 0xd57df(%rip), %rsi     # 0x1e2d4b
leaq -0x70(%rbp), %rdi
callq 0x44240
jmp 0x10d577
leaq 0xd6b51(%rip), %rdx     # 0x1e40cf
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x441f0
jmp 0x10d58d
movq -0x2c0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2f1e0
jmp 0x10d59f
leaq -0x50(%rbp), %rdi
callq 0x311e8
leaq -0x70(%rbp), %rdi
callq 0x311e8
jmp 0x10d60f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1a(%rbp), %rdi
callq 0x311c0
jmp 0x10dbf5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10dbe9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10d601
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x311e8
leaq -0x70(%rbp), %rdi
callq 0x311e8
jmp 0x10dbe9
movq 0x1c793a(%rip), %rdi    # 0x2d4f50
leaq 0xd5739(%rip), %rsi     # 0x1e2d56
callq 0x2ff50
jmp 0x10d624
movq -0x2d8(%rbp), %rdx
leaq 0xd5b34(%rip), %rsi     # 0x1e3166
leaq -0xf0(%rbp), %rdi
callq 0x44240
jmp 0x10d640
leaq 0xd574a(%rip), %rdx     # 0x1e2d91
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x441f0
jmp 0x10d65c
movq -0x2c8(%rbp), %rdi
addq $0x1938, %rdi           # imm = 0x1938
xorl %eax, %eax
movl %eax, %esi
callq 0x449e0
movq %rax, %rdx
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x44760
jmp 0x10d68b
leaq 0xd570c(%rip), %rdx     # 0x1e2d9e
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x441f0
jmp 0x10d6a7
movq -0x2c0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x2f1e0
jmp 0x10d6bc
leaq -0x90(%rbp), %rdi
callq 0x311e8
leaq -0xb0(%rbp), %rdi
callq 0x311e8
leaq -0xd0(%rbp), %rdi
callq 0x311e8
leaq -0xf0(%rbp), %rdi
callq 0x311e8
movq -0x2c8(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x300, %rdi            # imm = 0x300
callq 0x2f720
cmpq $0x0, %rax
je 0x10d823
movq -0x2c8(%rbp), %rdx
addq $0x17c0, %rdx           # imm = 0x17C0
leaq 0xd5626(%rip), %rsi     # 0x1e2d4b
leaq -0x130(%rbp), %rdi
callq 0x44240
jmp 0x10d733
leaq 0xd6995(%rip), %rdx     # 0x1e40cf
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x441f0
jmp 0x10d74f
movq -0x2c0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2f1e0
jmp 0x10d764
leaq -0x110(%rbp), %rdi
callq 0x311e8
leaq -0x130(%rbp), %rdi
callq 0x311e8
jmp 0x10d823
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10d7db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10d7cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10d7c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x311e8
leaq -0xb0(%rbp), %rdi
callq 0x311e8
leaq -0xd0(%rbp), %rdi
callq 0x311e8
leaq -0xf0(%rbp), %rdi
callq 0x311e8
jmp 0x10dbe9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10d812
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x311e8
leaq -0x130(%rbp), %rdi
callq 0x311e8
jmp 0x10dbe9
movq 0x1c7726(%rip), %rdi    # 0x2d4f50
leaq 0xd5525(%rip), %rsi     # 0x1e2d56
callq 0x2ff50
jmp 0x10d838
movq -0x2c8(%rbp), %rax
movl 0x1620(%rax), %esi
leaq -0x1f0(%rbp), %rdi
callq 0x17ce40
jmp 0x10d853
leaq 0xd5559(%rip), %rsi     # 0x1e2db3
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rdx
callq 0x8e0f0
jmp 0x10d86f
leaq 0xd6859(%rip), %rdx     # 0x1e40cf
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x441f0
jmp 0x10d88b
movq -0x2d8(%rbp), %rdx
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x44760
jmp 0x10d8a7
leaq 0xd5516(%rip), %rdx     # 0x1e2dc4
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x441f0
jmp 0x10d8c3
movq -0x2c8(%rbp), %rdi
addq $0x1938, %rdi           # imm = 0x1938
xorl %eax, %eax
movl %eax, %esi
callq 0x449e0
movq %rax, %rdx
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x44760
jmp 0x10d8f2
movq -0x2c0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x2f1e0
jmp 0x10d907
leaq -0x150(%rbp), %rdi
callq 0x311e8
leaq -0x170(%rbp), %rdi
callq 0x311e8
leaq -0x190(%rbp), %rdi
callq 0x311e8
leaq -0x1b0(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
movq -0x2c8(%rbp), %rax
testb $0x1, 0x1770(%rax)
je 0x10dbc3
movq -0x2c8(%rbp), %rdx
addq $0x1500, %rdx           # imm = 0x1500
leaq 0xd39c0(%rip), %rsi     # 0x1e1338
leaq -0x2b0(%rbp), %rdi
callq 0x44240
jmp 0x10d986
leaq 0xd49c6(%rip), %rdx     # 0x1e2353
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x441f0
jmp 0x10d9a2
movq -0x2c8(%rbp), %rdx
addq $0x14c0, %rdx           # imm = 0x14C0
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x44760
jmp 0x10d9c5
leaq 0xd5414(%rip), %rdx     # 0x1e2de0
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x441f0
jmp 0x10d9e1
movq -0x2c8(%rbp), %rdx
addq $0x14c0, %rdx           # imm = 0x14C0
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x44760
jmp 0x10da04
leaq 0xcda48(%rip), %rdx     # 0x1db453
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x441f0
jmp 0x10da20
movq -0x2c0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x2f1e0
jmp 0x10da35
leaq -0x210(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x250(%rbp), %rdi
callq 0x311e8
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
jmp 0x10dbc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10db13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10db07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10dafb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10daef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10dae3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x311e8
leaq -0x170(%rbp), %rdi
callq 0x311e8
leaq -0x190(%rbp), %rdi
callq 0x311e8
leaq -0x1b0(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
jmp 0x10dbe9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10dbb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10dba9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10db9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10db91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10db85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x250(%rbp), %rdi
callq 0x311e8
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
jmp 0x10dbe9
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x10dbd9
movq -0x2c0(%rbp), %rdi
callq 0x311e8
movq -0x2d0(%rbp), %rax
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
movq -0x2c0(%rbp), %rdi
callq 0x311e8
movq -0x28(%rbp), %rdi
callq 0x30170
nop