diff --git a/ssh_runner.py b/ssh_runner.py
index 3415382..c7ba9a9 100644
--- a/ssh_runner.py
+++ b/ssh_runner.py
@@ -2,6 +2,7 @@
 import Queue
 import traceback
 import threading
+from concurrent.futures import ThreadPoolExecutor
 
 from utils import ssh_connect
 
@@ -89,7 +90,9 @@
                    latest_start_time=None,
                    keep_temp_files=False):
 
-    connections = [connect(uri) for uri in uris]
+    with ThreadPoolExecutor(max_workers=16) as executor:
+        connections = executor.map(connect, uris)
+
     result_queue = Queue.Queue()
     barrier = get_barrier(len(uris), threaded=True)
 
diff --git a/starts_vms.py b/starts_vms.py
index 59ee694..dbade23 100644
--- a/starts_vms.py
+++ b/starts_vms.py
@@ -82,25 +82,39 @@
                   flt_ip_pool=None, name_templ='ceph-test-{}',
                   scheduler_hints=None):
 
-    if network_zone_name is not None:
-        network = nova.networks.find(label=network_zone_name)
-        nics = [{'net-id': network.id}]
-    else:
-        nics = None
-
-    fl = nova.flavors.find(name=flavor_name)
-    img = nova.images.find(name=img_name)
-
-    if flt_ip_pool is not None:
-        ips = get_floating_ips(nova, flt_ip_pool, amount)
-        ips += [Allocate] * (amount - len(ips))
-    else:
-        ips = [None] * amount
-
-    print "Try to start {0} servers".format(amount)
-    names = map(name_templ.format, range(amount))
-
     with ThreadPoolExecutor(max_workers=16) as executor:
+        if network_zone_name is not None:
+            network_future = executor.submit(nova.networks.find,
+                                             label=network_zone_name)
+        else:
+            network_future = None
+
+        fl_future = executor.submit(nova.flavors.find, name=flavor_name)
+        img_future = executor.submit(nova.images.find, name=img_name)
+
+        if flt_ip_pool is not None:
+            ips_future = executor.submit(get_floating_ips,
+                                         nova, flt_ip_pool, amount)
+        else:
+            ips_future = None
+
+        if ips_future is not None:
+            ips = ips_future.result()
+            ips += [Allocate] * (amount - len(ips))
+        else:
+            ips = [None] * amount
+
+        fl = fl_future.result()
+        img = img_future.result()
+
+        if network_future is not None:
+            nics = [{'net-id': network_future.result().id}]
+        else:
+            nics = None
+
+        print "Try to start {0} servers".format(amount)
+        names = map(name_templ.format, range(amount))
+
         futures = []
         for name, flt_ip in zip(names, ips):
             params = (nova, name, keypair_name, img, fl,
