## Concurrent and parallel algorithm

A bakery shop has to provide a stream of muffins for customers. The muffins are made by a baker in the kitchen and placed on a conveyor belt. The conveyor belt carries the muffins to where the customers are waiting to buy them. This scenario has been simulated using two processes: the baker and customer, and a shared conveyor belt implemented as a circular array called conveyor, where each space in the array can hold one muffin. There are two shared general semaphores, empty and full, and a mutex buffer_mutex. In this scenario, there is only multiple bakers and a single customer.

## Line of sight, parallel 5ft obstacle between player and enemy

One of my players got frightened by a Boss, and he’s trying to put himself between a 5ft diameter and 10ft tall pillar and the Boss enemy.

E being the Boss enemy, and P being the Player. Black square is the pillar. On the left image, can the Boss still see the Player to keep the frightened status going?

## How to trigger Mysql parallel query function to start?

``mysql> show variables like 'innodb_parallel_read_threads'; +------------------------------+-------+ | Variable_name                | Value | +------------------------------+-------+ | innodb_parallel_read_threads | 4     | +------------------------------+-------+ 1 row in set (0.00 sec) ``

Judging from the execution plan, although the cost value is high, it does not trigger parallel queries.

``mysql> explain analyze SELECT count(a.name) FROM b,a WHERE b.id = a.id AND a.id < 10000\G *************************** 1. row *************************** EXPLAIN: -> Aggregate: count(a.`name`)  (actual time=79199.970..79199.971 rows=1 loops=1)     -> Inner hash join (b.id = a.id)  (cost=29804029261222.55 rows=29803521726988) (actual time=52129.791..79198.823 rows=9999 loops=1)         -> Table scan on b  (cost=31.81 rows=18758239) (actual time=0.385..19630.712 rows=20000000 loops=1)         -> Hash             -> Filter: (a.id < 10000)  (cost=4909601.51 rows=15888229) (actual time=2.266..52117.583 rows=9999 loops=1)                 -> Table scan on a  (cost=4909601.51 rows=47669458) (actual time=2.262..48985.413 rows=50000000 loops=1)  1 row in set (1 min 19.25 sec) ``

## How can I get Graph edge labels to parallel an edge line or or follow an edge curve?

Edge labels are always rendered horizontally. I would like the label for any straight line edge to be rotated so the bottom of the label’s bounding box is coincident with the edge.

There was an older post (Comfortable Edge Labeling of Undirected Graph) that did this using EdgeRenderingFunction, but that has been superseded by EdgeShapeFunction in v12. EdgeShapeFunction does not have access to the label like EdgeRenderingFunction did.

Labels following a curved edge would be a bonus, but just paralleling a tangent somewhere on the edge would suffice.

## Monitoring Parallel Processes

I have a problem where my `For` loop will not get rid of my `PrintTemporary` monitor, and it means I end up with loads and loads of progress bars.

``(* set number of kerlnels to use *)  numkernel = 4;  (* how high do you want to count to? *)  iterations = 15;   (* for monitoring progress over multiple kernels *)  progress[current_, total_] :=   Column[{StringRiffle[ToString /@ {current, total}, " of "],     ProgressIndicator[current, {0, total}]}, Alignment -> Center]  (* counting very slowly *)  takeyourtime[howmany_, kernelnum_] := Module[{},    For[i = 1, i <= howmany, i++,     status[[Key[\$  KernelID]]] = <|       "Kernel" -> "Kernel " <> ToString@kernelnum,        "Monitor" -> progress[i, howmany]|>;     Pause[1];     ];   ]  (* will count up to iterations, k times over numkernel kernels *)  For[k = 1, k <= 3, k = k + 1;,   Print[k];    (*clean up*)   Clear[parrallel];   (* how to divide the counting *)   division = Round[iterations/numkernel];   (* remainder on the first kernel *)   divisionmod =    Round[iterations/numkernel] + Mod[iterations, numkernel];   (* put the first evaluation in, with the remainder*)   parrallel = {Hold[ParallelSubmit[{takeyourtime[divisionmod, 1]}]]};   (*for number of kernels, set up the parrallel stuff *)   For[i = 2, i <=  numkernel, i++ ,    parrallel =     Append[parrallel,      Hold[ParallelSubmit[{takeyourtime[division, 1]}]]];   (*to this, so we can add i and do the monitoring better,    have to be careful when expressions are evaluated,    want to keep that for the parralel bit *)    parrallel[[i]] =     StringReplace[ToString[parrallel[[i]]],      ", i]" -> ", " <> ToString[i] <> "]"];   parrallel[[i]] = ToExpression[parrallel[[i]]];   ] ;   LaunchKernels[];   (* the monitoring variable we will print *)   status =    Association @@     ParallelTable[$$KernelID -> <|"Kernel" -> "", "Monitor" -> ""|>, {i,$$KernelCount}];   (*distribute the required definitions around the kernels *)   DistributeDefinitions[takeyourtime, division, divisionmod ];   SetSharedVariable[status];   (* this is the monitoring bit *)   PrintTemporary[   Dynamic[Row[     Riffle[Column[#, Alignment -> Center] & /@        Query[Values, Values]@Select[#"Monitor" =!= "" &]@status,       Spacer[5]]]]];   (*execute the parralel process *)   results = WaitAll[ReleaseHold[parrallel]];   CloseKernels[];  ] ``

## How to use Parallel computing on Manipulate option on ParametricNDSolveValue

My aim is to use Manipulate option on the ParametricNDSolveValue. When ever i run my code “Manipulate” option runs very slow and some time shows Aborted when check for that value of parameter it works perfectly fine. My actual equations are very big and takes a lot of time for computing. Here i’m providing a toy problem, I wanted to use parallel programming (I don’t know how to perform parallel coding). and also be able to use Manipulate option. Kindly anyone provide a solution.

``ClearAll[Evaluate[StringJoin[Context[], "*"]]] Needs["Utilities`CleanSlate`"];  CleanSlate[];  ClearInOut[];     f1[a_, t_, x1_, x2_] := a*Sin[t*x1] +      Cos[x2]/(1 + a);    f2[a_, t_, x1_, x2_] := 1/(1 + a*t) +      a*Sin[x1];    sol1 := ParametricNDSolveValue[    {Derivative[1][x1][t] ==       f1[a, t, x1[t], x2[t]] + x2[t],      Derivative[1][x2][t] == f2[a, t, x1[t],        x2[t]], x1[0] == 0.001, x2[0] == 0},     {x1, x2}, {t, 0, 10}, {a}]    Manipulate[Plot[Evaluate[(#1[t] & ) /@       sol1[a]], {t, 0, 10}, PlotRange ->      {{0, 10}, {-20, 20}}, PlotLegends ->      {x1, x2}], {{a, 1}, 0, 10, 0.1}]  ``

## how to create parallel corpora using unstructured big text data in python?

English Text Data

10.1 Introduction In this chapter, we shall study some common physical properties of liquids and gases. Liquids and gases can flow and are therefore, called fluids. It is this property that distinguishes liquids and gases from solids in a basic way. Fluids are everywhere around us. Earth has an envelop of air and two-thirds of its surface is covered with water. Water is not only necessary for our existence; every mammalian body constitute mostly of water. All the processes occurring in living beings including plants are mediated by fluids. Thus understanding the behaviour and properties of fluids is important. How are fluids different from solids? What is common in liquids and gases? Unlike a solid, a fluid has no definite shape of its own. Solids and liquids have a fixed volume, whereas a gas fills the entire volume of its container. We have learnt in the previous chapter that the volume of solids can be changed by stress. The volume of solid, liquid or gas depends on the stress or pressure acting on it. When we talk about fixed volume of solid or liquid, we mean its volume under atmospheric pressure. The difference between gases and solids or liquids is that for solids or liquids the change in volume due to change of external pressure is rather small. In other words solids and liquids have much lower compressibility as compared to gases. Shear stress can change the shape of a solid keeping its volume fixed. The key property of fluids is that they offer very little resistance to shear stress; their shape changes by application of very small shear stress. The shearing stress of fluids is about million times smaller than that of solids. 10.2 Pressure A sharp needle when pressed against our skin pierces it. Our skin, however, remains intact when a blunt object with a wider contact area (say the back of a spoon) is pressed against it with the same force. If an elephant were to step on a man’s chest, his ribs would crack. A circus performer across whose chest a large, light but strong wooden plank is placed first, is saved from this accident. Such everyday experiences convince us that both the force and its coverage area are important. Smaller the area on which the force acts, greater is the impact. This concept is known as pressure. When an object is submerged in a fluid at rest, the fluid exerts a force on its surface. This force is always normal to the object’s surface. This is so because if there were a component of force parallel to the surface, the object will also exert a force on the fluid parallel to it; as a consequence of Newton’s third law. This force will cause the fluid to flow parallel to the surface. Since the fluid is at rest, this cannot happen. Hence, the force exerted by the fluid at rest has to be perpendicular to the surface in contact with it. This is shown in Fig.10.1(a). The normal force exerted by the fluid at a point may be measured. An idealised form of one such pressure-measuring device is shown in Fig. 10.1(b). It consists of an evacuated chamber with a spring that is calibrated to measure the force acting on the piston. This device is placed at a point inside the fluid. The inward force exerted by the fluid on the piston is balanced by the outward spring force and is thereby measured. If F is the magnitude of this normal force on the piston of area A then the average pressure Pav is defined as the normal force acting per unit area. (10.1) In principle, the piston area can be made arbitrarily small. The pressure is then defined in a limiting sense as P = (10.2) Pressure is a scalar quantity. We remind the reader that it is the component of the force normal to the area under consideration and not the (vector) force that appears in the numerator in Eqs. (10.1) and (10.2). Its dimensions are [ML–1T–2]. The SI unit of pressure is N m–2. It has been named as pascal (Pa) in honour of the French scientist Blaise Pascal (1623-1662) who carried out pioneering studies on fluid pressure. A common unit of pressure is the atmosphere (atm), i.e. the pressure exerted by the atmosphere at sea level (1 atm = 1.013 × 105 Pa). Another quantity, that is indispensable in describing fluids, is the density ρ. For a fluid of mass m occupying volume V, (10.3) The dimensions of density are [ML–3]. Its SI unit is kg m–3. It is a positive scalar quantity. A liquid is largely incompressible and its density is therefore, nearly constant at all pressures. Gases, on the other hand exhibit a large variation in densities with pressure. The density of water at 4oC (277 K) is 1.0 × 103 kg m–3. The relative density of a substance is the ratio of its density to the density of water at 4oC. It is a dimensionless positive scalar quantity. For example the relative density of aluminium is 2.7. Its density is 2.7 × 103 kg m–3. The densities of some common fluids are displayed in Table 10.1. Table 10.1 Densities of some common fluids at STP* * STP means standard temperature (00C) and 1 atm pressure. Example 10.1 The two thigh bones (femurs), each of cross-sectional area10 cm2 support the upper part of a human body of mass 40 kg. Estimate the average pressure sustained by the femurs. Answer Total cross-sectional area of the femurs is A = 2 × 10 cm2 = 20 × 10–4 m2. The force acting on them is F = 40 kg wt = 400 N (taking g = 10 m s–2). This force is acting vertically down and hence, normally on the femurs. Thus, the average pressure is

Hindi Text Data

10ण्1 भूमिका इस अध्याय में हम द्रवों तथा गैसों के कुछ सामान्य भौतिक गुणों का अध्ययन करेंगे। द्रव तथा गैस प्रवाहित होती हैं अत: तरल कहलाती है। मूल रूप में इस गुण के आधार पर हम द्रवों एवं गैसों का ठोसों से विभेद करते हैं। हमारे चारों ओर हर स्थान पर तरल हैं। पृथ्वी के ऊपर वायु का आवरण है और इसके पृष्ठ का दो-तिहाई भाग जल से आच्छादित है। जल केवल हमारे जीवन के अस्तित्व के लिए ही आवश्यक नहीं है वरन् सभी स्तनपायी जंतुओं के शरीर का अधिकांश भाग जल है। पौधों सहित सभी सजीवों में होने वाली समस्त प्रक्रियाओं में तरलों की परोक्ष भूमिका होती है। अत: तरलों के व्यवहार व गुणों को समझना बहुत महत्त्वपूर्ण है। तरल ठोसों से कैसे भिन्न हैं? द्रवों तथा गैसों में क्या-क्या समानता है? ठोसों के विपरीत तरल की अपनी कोई निश्चित आकृति नहीं होती। ठोसों एवं द्रवों का निश्चित आयतन होता है जबकि गैस पात्र के कुल आयतन को भर देती है। पिछले अध्याय में हमने पढ़ा है कि प्रतिबल द्वारा ठोसों के आयतन में परिवर्तन किया जा सकता है। ठोस, द्रव अथवा गैस का आयतन इस पर लगने वाले प्रतिबल अथवा दाब पर निर्भर है। जब हम ठोस या द्रव के निश्चित आयतन की बात करते हैं, तब हमारा तात्पर्य वायुमंडलीय दाब के अधीन आयतन से होता है। गैसों की तुलना में बाह्य दाबांतर से ठोस या द्रव के आयतन में परिवर्तन बहुत कम होता है। दूसरे शब्दों में गैसों की अपेक्षा ठोस एवं द्रवों की संपीड्यता काफी कम होती है। अपरूपण (विरूपण) प्रतिबल ठोस के आयतन में परिवर्तन किए बिना उसकी आकृति बदल सकता है। तरलों का मूल गुण यह है कि वह विरूपण प्रतिबल का बहुत ही न्यून प्रतिरोध करते हैं। फलत: थोड़े से विरूपण प्रतिबल लगाने से भी उनकी आकृति बदल जाती है। ठोसों की अपेक्षा तरलों का अपरूपक प्रतिबल लगभग दस लाखवाँ कम होता है। 10ण्2 दाब जब एक नुकीली सुई हमारी त्वचा में दाब लगाकर रखी जाती है, तो वह त्वचा को बेध देती है। परन्तु किसी अधिक संपर्क क्षेत्र की वस्तु (जैसे चम्मच का पिछला भाग) को उतने ही बल से दबाएँ तो हमारी त्वचा अपरिवर्तित रहती है। यदि किसी व्यक्ति की छाती पर कोई हाथी अपना पैर रख दे तो उसकी पसलियाँ टूट जाएँगी। सर्कस में यह करतब दिखाने वाले की छाती पर मजबूत लकड़ी का तख्ता रखा जाता है अत: वह इस दुर्घटना से बच जाता है। दैनिक जीवन के इस प्रकार के अनुभवों से हमें विश्वास हो जाता है कि बल के साथ-साथ जिस क्षेत्र पर वह बल आरोपित किया जाता है उसका क्षेत्रफल भी महत्त्वपूर्ण होता है। वह क्षेत्र जिस पर बल कार्य कर रहा है जितना छोटा होगा उसका प्रतिघात उतना ही अधिक होगा। यह संकल्पना ‘दाब’ कहलाती है। जब कोई पिण्ड किसी शांत तरल में डूबा हुआ है, तो तरल उस पिण्ड पर बल आरोपित करता है। यह बल सदैव पिण्ड के पृष्ठों के अभिलंबवत् होता है। ऐसा इसलिए है कि, यदि बल का अवयव पिण्ड के पृष्ठ के समांतर होता है तो न्यूटन के तृतीय नियमानुसार, पिण्ड भी अपने सतह के समांतर तरल पर बल आरोपित करता है। यह बल तरल को पृष्ठ के समांतर बहने के लिए बाध्य करता है। यह संभव नहीं है, क्योंकि तरल विश्रामावस्था में है। अत: विरामावस्था में तरल द्वारा लगने वाला बल पिण्ड के संपर्क पृष्ठ के अभिलंब ही आरोपित हो सकता है। इसे चित्र 10ण्1(ं) में दर्शाया गया है। तरल द्वारा किसी बिंदु पर कार्यरत इस अभिलंब बल को मापा जा सकता है। ऐसा ही एक दाब मापक युक्ति के आदर्श रूप को चित्र 10ण्1(इ) में दर्शया गया है। इस युक्ति में एक निर्वातित चैम्बर होता है, जिससे एक कमानी जुड़ी होती है। इस कमानी का अंशांकन पहले से ही इसके पिस्टन पर लगे बल को मापने के लिए कर लिया जाता है। इस युक्ति को तरल के अंदर के किसी बिंदु पर रखा जाता है। पिस्टन पर तरल द्वारा आरोपित बल को कमानी द्वारा पिस्टन पर आरोपित बल से संतुलित करके तरल द्वारा पिस्टन पर आरोपित बल को माप लेते हैं। यदि तरल द्वारा । क्षेत्रफल के पिस्टन पर आरोपित अभिलंब बल का परिमाण थ् है, तो औसत दाब च्ंअ को बल तथा क्षेत्रफल के अनुपात के रूप में परिभाषित किया जाता है अत: (10ण्1) सैद्धांतिक रूप में पिस्टन के क्षेत्रफल को मनमाने ढंग से छोटा किया जा सकता है। तब सीमित अथोर्ं में दाब को इस प्रकार परिभाषित करते हैं : (10ण्2)

चित्र 10ण्1 (ं) बीकर के द्रव में डूबे पिण्ड अथवा उसकी दीवारों पर द्रव द्वारा आरोपित बल पिण्ड के पृष्ठ के हर बिंदु के लंबवत् कार्य करता है। (इ) दाब मापने के लिए युक्ति का आदर्श रूप। दाब एक अदिश राशि है। यहाँ हम आपको यह याद दिलाना चाहते हैं कि समीकरणों (10ण्1) तथा (10ण्2) के अंश में दृष्टिगोचर होने वाली राशि संबंधित क्षेत्र के अभिलंबवत् बल का अवयव है न कि (सदिश) बल। इसकी विमाएँ ख्डस्दृ1ज्दृ2, हैं। दाब का मात्रक छउदृ2 है। प्रफ़ांसीसी वैज्ञानिक ब्लेजी पास्कल (1623.1662) ने तरल दाब क्षेत्र में पुरोगामी अध्ययन किया। इसलिए उनके सम्मान में दाब के ैप् मात्रक का नाम पास्कल (चेंबंसए प्रतीक च्ं) रखा गया है। दाब का एक अन्य सामान्य मात्रक वायुमण्डल (ंजउवेचीमतमए प्रतीक ंजउ) अर्थात् समुद्र तल पर वायुमंडल द्वारा आरोपित दाब, है (1 ंजउ = 1ण्013 × 105 च्ं)। तरलों का वर्णन करने के लिए घनत्व (ρ ) एक ऐसी भौतिक राशि है जिसके विषय में चर्चा करना अनिवार्य है। ट आयतन वाले उ संहति के किसी तरल का घनत्व (10ण्3) घनत्व की विमाएँ ख्डस्दृ3, हैं। इसका ैप् मात्रक ाह उदृ3 है। यह एक धनात्मक अदिश राशि है। द्रव असंपीड्य होते हैं, अत: किसी द्रव का घनत्व सभी दाबों पर लगभग अचर रहता है। इसके विपरित, गैसें दाब में परिवर्तन के साथ घनत्व में अत्यधिक परिवर्तन दर्शाती हैं। 4 वब् (277 ज्ञ) पर जल का घनत्व 1ण्0 × 103 ाह उदृ3 है। किसी पदार्थ का आपेक्षिक घनत्व (विशिष्ट गुरुत्व) उस पदार्थ के घनत्व तथा जल के 4 वब् पर घनत्व का अनुपात होता है। यह विमाहीन धनात्मक अदिश भौतिक राशि है। उदाहरण के लिए ऐलुमिनियम का आपेक्षिक घनत्व 2ण्7 है। जबकि इसका घनत्व 2ण्7 × 103 ाह उदृ3 है। सारणी 10.1 में कुछ सामान्य तरलों के घनत्व दर्शाए गए हैं। सारणी 10ण्1 कुछ सामान्य तरलों के घनत्व मानक ताप तथा वायुमंडलीय दाब (ैज्च्) पर’ 1ण्00 × 103 ’ ैज्च् का अर्थ मानक ताप 0 0ब् तथा दाब 1 ंजउ है।

उदाहरण 10ण्1 दो उर्वस्थितियाँ (फीमर) जिनमें प्रत्येक की अनुप्रस्थ काट का क्षेत्रफल 10 बउ2 है, 40 ाह संहति के मानव शरीर के ऊपरी भाग को सँभालती हैं। उर्वस्थितियों द्वारा सहन किए जाने वाले औसत दाब का आकलन कीजिए। हल उर्वस्थियों की कुल अनुप्रस्थ काट का क्षेत्रफल । = 2 × 10 बउ2 = 20 × 10दृ4 उ2। उर्वस्थियों पर कार्यरत बल थ् = 40 ाह ूज = 400 छ (ह = 10 उ ेदृ2 लेने पर)। यह बल ऊर्ध्वाधर नीचे की दिशा में कार्य करता है, अत: यह उर्वस्थियों पर अभिलंबवत् लगता है। इसीलिए औसत दाब

## Decomposition of graph to subgraphs according to parallel edges

I am supposed to calculate all-pair shortest path lengths of a graph. However, I first need the graph to be decomposed/expanded to a simple one based on the presence of parallel edges.

If N parallel edges exist between any two vertices A and B, I need to create N replicas of both vertices. Each replica of A will be connected to one and only one replica of B, and vice versa. In addition, all replicas of a vertex must be fully connected to each other.

As an example:-

` A === B `

will become

` A1 ----- B1 |        | A2 ----- B2  `

Does this formulation match any well-defined graph theory problem? I am trying to come up with an algorithm that can make use of a GPU’s speed, since the graphs I am dealing with can become huge, and I am trying to do it by manipulating the adjacency matrix.

## Parallel Algorithm

Show that if we have an efficient parallel algorithm (using a polynomial number of processors and taking polylogarithmic time) for some problem, then we can find an efficient sequential algorithm (taking polynomial time) for the same problem.

## How to deal with parallel edges between two vertices in cycle detection using BFS in an undirected graph?

I am new to Programming and learning Algorithms and was studying BFS when I read that BFS could be used for cycle detection. I tried to implement the same on an undirected graph G with Adjacency List Representation. What I did is as follows:

• Do a simple BFS Traversal using a Queue while maintaining the parent node of nodes enqueued in the queue.

• If I come across a node `u` that has a neighbor `v` such that `v` is already visited but `v` is not the parent of `u` then that means there is cycle in the graph.

Pseudocode:

``#adjList is the adjacency list given as a dictionary #myQueue is a double-sided queue containing node and its parent node ([Node, parNode]) #visited is a set containing visited nodes  while(myQueue):     currNode, parNode = myQueue.pop() #dequeue operation     visited.add(currNode) #Marking currNode as visited     for childNode in adjList[currNode]: #Traversing through all children of currNode         if currNode not in visited:             myQueue.appendleft([childNode, currNode]) #Enqueue operation         else:             if childNode!=parNode: #Main logic for cycle detection                 print('CYCLE DETECTED')                 break ``

The above approach is working except in cases when I have more than 1 edge between 2 vertices for e.g. in following case we have 2 edges between vertices `0` and `1`:

Adjacency list of above graph is: `adjList = {0:[1, 2], 1:[0], 2:[0]}`. Here we can clearly see that the graph contains a cycle but above algorithm is not able to detect the same because when BFS will reach vertex `1`, vertex `0` is already visited but vertex `0` is also the parent of vertex `1` so this cycle will go undetected.

My question is how I can modify above algorithm to detect such cases?

Edit: I tried the same logic on directed graphs also, and I am facing similar problem i.e. case when I have a directed edge from vertex `0` to vertex `1` and another directed edge from vertex `1` to vertex `0`