Skip to content

Commit e7d721a

Browse files
author
Johannes Otepka
committed
task label example improved
1 parent f95b3c3 commit e7d721a

File tree

1 file changed

+39
-10
lines changed

1 file changed

+39
-10
lines changed

docs/source/examples/basic_task_label.py

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
"""Basic task label example"""
1+
"""Basic task label example
2+
3+
Labels can be used for identifying or semantically grouping tasks. Using the $glob operator
4+
relevant task records can be queried from the Task Database.
5+
6+
Authors
7+
-------
8+
* ottointhesky
9+
"""
210

311
import ipyparallel as ipp
412

@@ -18,13 +26,17 @@ def wait(t):
1826
return time.time() - tic
1927

2028

29+
count = 5 # number of tasks per method
30+
2131
# use load balanced view
2232
bview = rc.load_balanced_view()
2333
ar_list_b1 = [
24-
bview.set_flags(label=f"mylabel_map_{i:02}").map_async(wait, [2]) for i in range(10)
34+
bview.set_flags(label=f"bview_map_{i:02}").map_async(wait, [2])
35+
for i in range(count)
2536
]
2637
ar_list_b2 = [
27-
bview.set_flags(label=f"mylabel_map_{i:02}").apply_async(wait, 2) for i in range(10)
38+
bview.set_flags(label=f"bview_apply_{i:02}").apply_async(wait, 2)
39+
for i in range(count)
2840
]
2941
bview.wait(ar_list_b1)
3042
bview.wait(ar_list_b2)
@@ -33,19 +45,36 @@ def wait(t):
3345
# use direct view
3446
dview = rc[:]
3547
ar_list_d1 = [
36-
dview.set_flags(label=f"mylabel_map_{i + 10:02}").apply_async(wait, 2)
37-
for i in range(10)
48+
dview.set_flags(label=f"dview_map_{i + 10:02}").map_async(wait, [2])
49+
for i in range(count)
3850
]
3951
ar_list_d2 = [
40-
dview.set_flags(label=f"mylabel_map_{i + 10:02}").map_async(wait, [2])
41-
for i in range(10)
52+
dview.set_flags(label=f"dview_apply_{i + 10:02}").apply_async(wait, 2)
53+
for i in range(count)
4254
]
4355
dview.wait(ar_list_d1)
4456
dview.wait(ar_list_d2)
4557

58+
59+
def print_records(titel, data):
60+
print(f"{titel} ({len(data)} records)")
61+
for d in data:
62+
print(
63+
f"\tmsg_id={d['msg_id']}; label={d['label']}; engine_uuid={d['engine_uuid']}"
64+
)
65+
66+
67+
query_keys = ['msg_id', 'label', 'engine_uuid']
68+
4669
# query database
47-
data = rc.db_query({'label': {"$nin": ""}}, keys=['msg_id', 'label', 'engine_uuid'])
48-
for d in data:
49-
print(f"msg_id={d['msg_id']}; label={d['label']}; engine_uuid={d['engine_uuid']}")
70+
data = rc.db_query({'label': {"$nin": ""}}, keys=query_keys)
71+
print_records("all entries with labels", data)
72+
73+
data = rc.db_query({'label': {"$glob": "dview_*"}}, keys=query_keys)
74+
print_records("all dview label entries", data)
75+
76+
data = rc.db_query({'label': {"$glob": "*_map_*"}}, keys=query_keys)
77+
print_records("all map label entries", data)
5078

79+
# stop cluster
5180
cluster.stop_cluster_sync()

0 commit comments

Comments
 (0)