summaryrefslogtreecommitdiff
path: root/training/utils/parallelize.pl
diff options
context:
space:
mode:
authorChris Dyer <redpony@gmail.com>2014-01-15 20:33:02 -0500
committerChris Dyer <redpony@gmail.com>2014-01-15 20:33:02 -0500
commitb1628d8bedb8a4145c77ed5917999379fc99a5d5 (patch)
treeb35bfd79b4fcf6725f663768040063f59e38d8c7 /training/utils/parallelize.pl
parentb5c7cb3b9a1bfd917235fc79d67169b9d7d98ab0 (diff)
maybe better randomization to prevent port conflicts on big machines?
Diffstat (limited to 'training/utils/parallelize.pl')
-rwxr-xr-xtraining/utils/parallelize.pl16
1 files changed, 13 insertions, 3 deletions
diff --git a/training/utils/parallelize.pl b/training/utils/parallelize.pl
index 4197e0e5..c9ab88ce 100755
--- a/training/utils/parallelize.pl
+++ b/training/utils/parallelize.pl
@@ -45,11 +45,22 @@ my $numnodes = 8;
my $user = $ENV{"USER"};
my $pmem = "9g";
my $basep=50300;
-my $randp=300;
my $tryp=50;
my $no_which;
my $no_cd;
+if (-r '/dev/urandom') {
+ open(RR,'</dev/urandom') or die "Failed to read /dev/urandom: $!";
+ my $buffer;
+ die "Failed to read 4 bytes of entropy" unless read(RR,$buffer,4) == 4;
+ close RR;
+ my ($val) = unpack 'L1', $buffer;
+ srand($val);
+} else {
+ srand();
+}
+my $randp=4000;
+
my $DEBUG=$ENV{DEBUG};
print STDERR "DEBUG=$DEBUG output enabled.\n" if $DEBUG;
my $verbose = 1;
@@ -206,8 +217,7 @@ chomp $host;
# find open port
-srand;
-my $port = 50300+int(rand($randp));
+my $port = $basep+int(rand($randp));
my $endp=$port+$tryp;
sub listening_port_lines {
my $quiet=$verbose?'':'2>/dev/null';