Bootstrap replicates are independent, so to the first part of your question: yes, you can simply create however many bootstrapped matrices you require (e.g. 1000) and run a tree search on each of those on separate nodes of your cluster. You can use seqboot for this, or other utilities with similar functionality. As a plug for Bio::Phylo you might, for example, do the following:
use Bio::Phylo::IO 'parse';
my ($matrix) = @{ parse(
-format => 'nexus', # or any of the other supported formats, e.g. 'phylip'
-file => 'myfile.nex', # or a string, url or handle
-as_project => 1,
)->get_matrices };
for ( 1 .. 1000 ) {
my $bootstrapped = $matrix->bootstrap;
open my $outfh, '>', "myfile{$_}.nex" or die $!;
print $outfh "#NEXUS\n", $bootstrapped->to_nexus;
}
...which gives you a thousand bootstrapped versions of 'myfile.nex', with names 'myfile[1..1000].nex'. Then, you run a tree search on each of those, concatenate the resulting trees into a list of newick strings (as per your original query) and do the following:
use Bio::Phylo::IO 'parse';
my $forest = parse(
-format => 'newick',
-file => 'mytrees.dnd',
);
my $consensus = $forest->make_consensus( -branches => 'frequency' );
open my $outfh, '>', 'consensus.dnd' or die $!;
print $outfh $consensus->to_newick;
This gives you a little more flexibility in terms of the file formats you can use beyond phylip and newick (and, consequently, the tree searching programs you can use) but other than that it is equivalent to using seqboot and consense - and, depending on the number of sequences and bootstrap replicates, there might be performance issues with using perl.