distributed slave nodes forking for each core to take advantage of multicore architectures

git-svn-id: svn://anubis/fart/trunk@245 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2009-04-15 02:44:05 +00:00
parent f6c6e8ec36
commit 054a5e8f0e

View File

@ -42,12 +42,22 @@ void startChildren(const string & servername,
args.push_back(server_port_str); args.push_back(server_port_str);
for (int i = 0, sz = options.size(); i < sz; i++) for (int i = 0, sz = options.size(); i < sz; i++)
args.push_back(options[i]); args.push_back(options[i]);
const char * char_star_args[args.size() + 1]; const char * char_star_args[args.size() + 1];
for (int i = 0, sz = args.size(); i < sz; i++) for (int i = 0, sz = args.size(); i < sz; i++)
char_star_args[i] = args[i].c_str(); char_star_args[i] = args[i].c_str();
char_star_args[args.size()] = (char *) NULL; char_star_args[args.size()] = (char *) NULL;
int num_children = sysconf(_SC_NPROCESSORS_CONF); int num_children = sysconf(_SC_NPROCESSORS_CONF);
num_children--;
#if 0
/* debug */
cout << "executing: 'fart', ";
for (int i = 0, sz = args.size(); i < sz; i++)
cout << "'" << char_star_args[i] << "', ";
cout << endl;
#endif
for (int i = 0; i < num_children; i++) for (int i = 0; i < num_children; i++)
{ {
@ -203,9 +213,7 @@ int main(int argc, char * argv[])
{ {
if (!child) if (!child)
{ {
startChildren(the_distrib.getServerName(), startChildren(server_name, server_port, client_options);
the_distrib.getServerPort(),
client_options);
} }
the_distrib.startClient(server_name, server_port); the_distrib.startClient(server_name, server_port);