tutorbin

distributed computing homework help

Boost your journey with 24/7 access to skilled experts, offering unmatched distributed computing homework help

tutorbin

Trusted by 1.1 M+ Happy Students

Recently Asked distributed computing Questions

Expert help when you need it
  • Q1:Some distributors continuously search out new suppliers to find better pricing and margins for their firm; whereas others believe they will add value to their firm by developing a more integrative relationship with certain key suppliers. The graph below shows the results of a comprehensive study where the integrative relational approach to treating suppliers significantly increases key performance metrics as compared to when the relationship is more transactional (i.e., less integrative) in nature. Select one of the outcomes (e.g., supplier quality or sales growth) and explain why the integrative approach between the supplier and distributor produces such significant differences in performance relative to the transactional approach. In doing so, use the information discussed in the Module and Chapter 3, and identify specific behaviors the suppliers and distributors would demonstrate that describe examples of an integrative approach. (This study is NOT about behaviors with customers/consumers).See Answer
  • Q2: 16/01/2024, 04:00 Multiple definitions for Distributions, Linear Algebra and PlutoUI Combine all definitions into a single reactive cell using a `begin 1 begin 2 3 4 5 6 mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_17053... end using Linear Algebra using Distributions using PlutoUI 1 # using Plots #uncomment to plot things UndefVarError: `PlutoUI` not defined 1. top-level scope @Local: 1 1 PlutoUI.TableOfContents() ...no it's not filled. Sorry to disappoint. end block. https://mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_1705352991485.h... 1/61 16/01/2024, 04:00 mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_17053... Question 1 1 md""" 2 # Question 1 || | || https://mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_1705352991485.h... 2/61 16/01/2024, 04:00 A | | | 1 md" 2 # A || || || mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_17053... my_transf (generic function with 1 method) 1 function my_transf(A) 2 3 end 4 5 # Example usage return A + transpose (A) 1 matrix_A = [1 2 3; 4 5 6; 7 8 9] 1 result my_transf(matrix_A) https://mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_1705352991485.h... 3/61 16/01/2024, 04:00 B 1 md""" 2 # B 11 11 11 eigprod (generic function with 1 method) 1 function eigprod (A::Matrix, i::Number, j::Number) 2 # Calculate eigenvalues and eigenvectors 3 eigenvals, eigenvecs eigen (A) 4 5 6 7 8 9 10 11 12 13 end 14 15 # Example usage # Extract the ith and jth eigenvectors vi = eigenvecs[:, i] vj = eigenvecs[:, j] mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_17053... # Calculate the dot product dot_product dot (vi, vj) j_value return dot_product matrix_A = 2×2 Matrix{Int64}: 1 2 3 4 1 matrix_A = i_value = 1 1 i_value = 1 = 2 1 j_value 1 result = = = [1 2 3 4] = 2 eigprod (matrix_A, i_value, j_value) https://mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_1705352991485.h... 4/61 16/01/2024, 04:00 C 1 md" 2 # C || || || ||| || || mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_17053... 1 Enter cell code... https://mediatb.blob.core.windows.net/media//65a59e77af9afb34f97b285c/questions/wild-computation-17_1705352991485.h... 5/61See Answer
  • Q3: Homework 3: More about basic gates and mea- surements, XOR and Phase Oracles The goal of this homework is to review unitary operations and measurements and to ensure you are comfortable manipulating xor and phase oracles. You are permitted to discuss these problems with classmates and at office hours, as well as to avail yourself of any other resource. However, you are to write down your final solutions on your own, not to copy or write collaboratively. The grader is permitted to grade you down if your work is poorly written, illegible, or difficult to follow. It is your responsibility to write in a succinct rigorous understandable way. Be careful to not confuse the letters and v. Exercise 1 (6 points): CNOT in the X basis The “controlled not” gate acting on two qubits where the first is the deemed "control" and the second is deemed "target" can be written as CNOT = 0 0 0 0 1 0 0 0 0 1 0 0 1 0 in the basis Z {100), |01), |10), |11)}. • • • √2 (3 points) Consider the X basis of a single qubit |+) = 10)+11), |-) : |0)-|1) √2 What is the result of CNOT gate acting on each of the states |++), |+ −), | − +), | − −)? (1 point) What is the matrix representation of the CNOT gate in the X basis (please also write down the sequence of basis vectors so we know how you ordered them)? (2 points) Going back to the Z basis representation, how does the CNOT gate look like if you swap the target and control qubits. Exercise 2 (7 points): Poorman's Quantum Tomography Say you have a set A of many copies of the state (0) +11) and a set B of random selections of the states (0) and (1) (again many copies, in a 50-50 distribution). You are given these two sets, but you are not told which one is which. √2 1. (1 point) If you are permitted to perform measurements in the computa- tional basis (the Z basis), can you say which set is which? Why? 2. (1 point) Does your answer change if you can perform measurements in the X basis? Why? 1 Consider the state |Y) = a|0) + ß|1). 3. (1 point) What constraints do a and ẞ obey? 4. (1 point) What is the unique state (D) which is orthonormal to the state |V)? 5. (3 points) Say you have a set C of many copies of the state (V) and a set D of a random selection of the states (0) and (1) (state |0) is a fraction |a|2 of all states in the set D while the rest are states (1)). Again, you are given these two sets but you do not know which one is which and you need to perform repeated measurements in order to distinguish them. What is the circuit you would use for that, i.e. what is the circuit which you can use (maybe repeated uses) in order to distinguish the sets C and D? For gate notation, consult Aaronson's lecture notes. You can use other notations as long as you explain their meaning. Exercise 3 (6 points): Converting between Oracles Consider the classical function f which takes n bits and returns 1 bit. 1. (1 point) Consider the unitary gate Uxor corresponding to the XOR oracle for f. How many qubits does this gate act on (i.e. how many lines pass through the rectangle representing the gate in circuit notation)? How large is the unitary matrix corresponding to this gate? 2. (1 point) Consider the unitary gate Up corresponding to the phase oracle for f. How many qubits does this gate act on (i.e. how many lines pass through the rectangle representing the gate in circuit notation)? How large is the unitary matrix corresponding to this gate? 3. (2 points) Draw a circuit that is equivalent to the Uxor gate, but it uses only the Up gate and potentially other "standard" gates (e.g. some of the gates defined in the Aaronson lecture notes). If necessary, you are permitted to have some extra “auxiliary” qubits lying around at the end (as long as they are not entangled with the rest of the system at the end, i.e. as long as you can factor them out). 4. (2 point) Draw a circuit that is equivalent to the Up gate, but it uses only the Uxor gate and potentially other "standard" gates (e.g. some of the gates defined in the Aaronson lecture notes). If necessary, you are permitted to have some extra “auxiliary” qubits lying around at the end (as long as they are not entangled with the rest of the system at the end, i.e. as long as you can factor them out). Exercise 4 (13 points): Necromancy-hardness Quantum Necromancy and The circuits involved in this problem are shown at the end. 2 When quantum mechanics was being developed, the notion of superposition seemed preposterous. Schroedinger suggested a thought experiment exemplifying how ridiculous superposition is. In modern parlance the thought experiment is as follows: Imagine a qubit in the (+) state. That qubit is connected to a trigger that can kill a cat. The trigger does nothing if the qubit is in state |0) and it kills the cat if it is in state (1), i.e. the trigger acts as a "control-kill” gate, with the aforementioned qubit as control and the state of the cat as a target. You can think of the cat as "a very large number of degrees of freedom, i.e., a very large number of qubits to be kept in memory”. In this setup, after the control-kill gate, the state of the cat would have to be a superposition of alive and dead. We have never observed such a cat state in the real world, therefore quantum mechanics is preposterous and probably wrong. In this problem we will untangle (pun intended) this paradox. We will use computational complexity theory as a way to provide a non- preposterous explanation of the thought experiment. We will prove that the following two capabilities are equally “difficult”, where the difficulty is some measure of the circuit complexity to perform each: • • Distinguishing: Capability of keeping superposition of two orthogonal states in memory / proving it is actual superposition (e.g. by distinguishing different phases in the superposition). Rotating: Capability of deterministically rotating between the two or- thogonal states. The two orthogonal states in question will be |A) and (D) standing for Alive and Dead. Think of them as very large states, an immense number of qubits (necessary to fully define the complete state of a cat), and potentially difficult to keep in memory without them "decohering". and Defining the first capability: proving/distinguishing superpositions |A)+|D) Schroedinger says it is preposterous to imagine that states like |0): √2 |4) = |A)-|D) could exist and be observable. Let us define what "be observable" means: it means, having a circuit capable of distinguishing whether the circuit input is ) or 4) or simply a classical 50/50 mixture of |A) and (D) (repeated executions of the circuit might be necessary). √2 (1 point) Are (0) and (v) orthogonal? (2 point) Express |A) and |D) in terms of 6) and 4). Let us write down the simplest such circuit: It requires one additional auxiliary qubit in addition to the large number of qubits representing the cat. The circuit involves one single gate U, acting on the entire system (auxiliary qubit and cat), with the following properties: • | U |0] × |ø) = |0) ☆ |ø) • | U |0) |v) = |1) × |V] 3 As you know, to fully define a gate, you need to know how it acts on all vectors in a given basis. The gate also needs to be a unitary operation. (3 points) The above does not fully define the gate. Which of the following is a possible way to complete the definition of the gate? Why or why not? • U |1) × |ø) = |1) × |ø) and U |1) × |V) = • U |0)|6) = |1)|0) and U |0) × |V) |0) 4) |0) |4) • U |1] × |ø) = |1) × |ø) and U |1) × |v) |1)|4) Now we will use the gate U (the one we have defined above) to distinguish superposition from a classical probability distribution. Consider three possibilities: S1 we are given many copies of the state |0); S2 we are given many copies of the state (4); S3 we are given a large set of states, randomly half of them being |A) and half of them being |D). We will use an auxiliary qubit prepared in state |0). We will perform the gate U and then measure the auxiliary qubit in the Z basis. Prove that this circuit leads to the following results: • • • (1 point): If we are given S1, then when repeating the circuit on new states from the given set will lead to a measurement result that is always 0. (1 point): If we are given S2, then when repeating the circuit on new states from the given set will lead to a measurement result that is always 1. (1 point): If we are given S3, then when repeating the circuit on new states from the given set will lead to randomly getting either 0 or 1 with equal probability each time we run the measurement. Thus we can use a circuit involving one extra qubit, a U gate and a single Z measurement to check whether we have a true quantum superposition, or just a classical probability distribution over two possible states. Defining the second capability: rotating between states Having a gate that turns |A) into (D) and vice versa is what the rotation capability is all about. Such a gate implies we have defeated death and we can resurrect the dead. We intuitively know this is rather difficult. Capability of detection of large superpositions implies capability of resurrection Consider now the ancillary qubit being in state |+) and the cat being in state |D). We perform the circuit UZU, i.e. we apply the gate U followed by the single-qubit gate Z acting on the first qubit followed by applying U again. (1 point) What is the state of the full system (qubit and cat) after the first U gate? 4 (1 point) What is the state of the full system after the Z gate acts on the qubit? (2 point) Prove that the state of the system after the second U gate is |—)|A). The cat is resurrected! Congratulations, you used the gate U (originally designed simply to be able to distinguish superposition from classical probability distribution) to do a very different task: to rotate between the two states that might be in superposition. You turned the state |D) into the state |A). You did not simply defeat Death, you proved that being able to observe macroscopic quantum superposition is at least as difficult as reversing macroscopic chaotic processes (like undoing death or unscrambling eggs). Thus the answer to Schroedinger's incredulity is: "indeed, the technology necessary to observe a macroscopic superposition of dead and alive is as difficult to create as the technology to reverse death". In this problem we did not prove that macroscopic superposition does or does not exist, rather we just explained why it is difficult to sustain it: We proved that sustaining macroscopic superposition is at least as difficult as another difficult problem. This type of reduction of complexity is very common in theoretical computer science. However, instead of discussing space-complexity or time-complexity or query-complexity, we used necromancy-complexity. auxiliary quilit (G) cat's state 3 Z Checking for superposition <+1 ☑ Reviving 10>{ и 5See Answer
  • Q4: 3/14/23, 3:19 PM Project 2 Project 2 3/20/2023 Attempt 1 IN PROGRESS ☐ Next up. Submit Assignment 100 Possible Points Add Comment Unlimited Attempts Allowed 3/1/2023 to 3/25/2023 ✓ Details Two students can form a team and turn in one submission Please add the following statement at the beginning of your report. I have neither given nor received unauthorized assistance on this work Sign: Date: Project Description In this programming project, you will develop an n-node distributed system that implements a vector clock. The distributed system uses a logical clock to timestamp messages sent/received among the nodes. To simplify the design and testing, the distributed system will be emulated using multiple processes on a single machine. Each process represents a machine and has a unique port number for communication. You can use any programming language. Implement the vector clock for your distributed system. You can create two threads for each process, one for sending messages to other nodes and one for listening to its communication port. Communication among nodes can be done using RPC or using sockets. Once a process sends a message, it should print its vector clock before and after sending a message. Similarly, once a process receives a message, it should print its vector clock before and after receiving the message. You can assume that the number of processes (machines) is fixed (equal to or larger than 3) and processes will not fail, join, or leave the distributed system. Part-1 (40 points) Each process can send a unicast message to another process. Update the vector clocks of the processes involved and print their vector clocks before and after sending/receiving the messages. Dort 110 nointal https://uta.instructure.com/courses/132703/assignments/1410052 Submit Assignment 1/2 3/14/23, 3:19 PM Project 2 Each process can broadcast a message to all other processes. Update the vector clocks of all the processes and print the vectors of all the processes before and after sending/receiving the messages. Deliverables The deliverables include the source code of the programs, a README file (10 points) containing instructions on how to compile and run your programs, and a report (10 points) that briefly describes how you implemented the programs, what you have learned, and what issues you encountered. Put all the required documents into a zipped folder. Make sure you clearly list your names and student IDs in the report. Choose a submission type Upload Studio More https://uta.instructure.com/courses/132703/assignments/1410052 o Webcam Photo Canvas Files or Choose a file to upload Submit Assignment 2/2See Answer
  • Q5: 4/15/23, 9:05 PM Project 3 4/19/2023 Attempt 1 PROGRESS ☐ INext up. Submit Assignment Unlimited Attempts Allowed 4/10/2023 to 4/24/2023 Project 3 100 Possible Points Add Comment ✓ Details Two students can form a team and turn in one submission Please add the following statement at the beginning of your report. I have neither given nor received unauthorized assistance on this work Sign: Date: Project Description Implement a fault-tolerant 2-phase distributed commit (2PC) protocol and use controlled and randomly injected failures to study how the 2PC protocol handles node crashes. Assume one transaction coordinator (TC) and at least two participants in the 2PC protocol. Similar to the previous projects, we use multiple processes to emulate multiple nodes. Each node (both the TC and the participants) devises a time-out mechanism when no response is received and transits to either the abort or commit state. For simplicity, you can assume that only one node fails in the controlled test. Evaluate different possibilities of failures: TC failure (20 points): If the coordinator fails before sending the "prepare" message, nodes will not receive the "prepare" message until the time-out and will abort. So, they will respond "no" to the "prepare" message after the coordinator comes back up and sends the "prepare" message. https://uta.instructure.com/courses/132703/assignments/1423521 Submit Assignment 1/3 4/15/23, 9:05 PM Node failure (20 points): Project 3 If the transaction coordinator does not receive "yes" from a node, it will abort the transaction. TC failure (20 points): TC needs to store the transaction information on disk before sending the "commit" message to the nodes. If the TC fails after sending one "commit" message to the nodes, it can't abort. When it comes back up it will send the "commit" message to the nodes that it didn't send the "commit" message to. Node failure (20 points): A node needs to store the transaction information before replying "yes" to the TC. If it fails (time-out) after replying "yes"; after it comes back up, it will fetch the commit information from the TC for that particular transaction. To emulate a failure, you can impose a much longer delay at a failed node than the time-out period used by other active nodes. Node prints their states(commit/abort) before termination. Deliverables The deliverables include the source code of the programs, a README file (10 points) containing instructions on how to compile and run your programs, and a report (10 points) that briefly describes how you implemented the programs, what you have learned, and what issues you encountered. Put all the required documents into a zipped folder. Make sure you clearly list your names and student IDs in the report. Choose a submission type 8 Upload Studio More https://uta.instructure.com/courses/132703/assignments/1423521 Submit Assignment 2/3 4/15/23, 9:05 PM Project 3 ( Webcam Photo https://uta.instructure.com/courses/132703/assignments/1423521 Canvas Files or Choose a file to upload Submit Assignment 3/3See Answer
  • Q6: Department of CSE, The University of Texas at Arlington CSE5351/CSE4351: Parallel Processing Spring Semester, 2023 Homework Assignment 5-6 combined Due Date May 2, 2023 (no Resubmission) Write and test the following programs using C and MPI on the Stampede. (Email the Word file with the results and c code files to the TA) This is a combined homework for 5 and 6. The total points are 200/200 (20% of grade). 1. PROBLEM DESCRIPTION (40 points) Write a data-parallel program using distributed non-shared memory model as taught in the class for the sieve of Eratosthenes. Use MPI for message passing and test the program on the Stampede supercomputer. The program has two inputs: The largest number, n, up to which the prime numbers are to be found, and, p, the number of processors. The program should run for any number of cores (processors) ranging from 1 to 32. Make the rest of the assumptions yourself but your grade will be based on how good your parallelization and communication scheme is. So feel free to make optimizations. The output of your program is the prime numbers found by your program. Attach a note on your parallelization scheme, and include a speedup vs processor plot (include a number of curves, each with a reasonable number n, to be chosen by you) against the sequential algorithm implemented on one of the Stampede processors. 2. PROBLEM DESCRIPTION (60 points) You are familiar with the numerical integration for calculating using the rectangle rule. Simpson's Rule is a better integration algorithm than the rectangle rule because it converges quickly. Suppose we want to compute for f (x) dx. We divide the interval [a, b] into n sub intervals where n is even. Let x; denote the end of the ith interval, for 1≤i≤ n, and let xo denote the beginning of the first interval. According to Simpson's rule: 1 ſº ƒ (x)dx = ± fx ¸ − fx „ +Ỷ (4ƒ (x21-1) + 2ƒ (x2)) f 3n - n fx„+Ź i=1 4 In the case of л calculation problem, f(x)= -, a = 0, b = 1, and n is an input parameter. (1+x²) Write a parallel program using MPI to compute л using Simpson's Rule. The program should be able to run on any number of processors (to be specified at run-time). Run and test your program on the Stampede. 1 (a) Attach a note on your parallelization scheme, and include a time vs processors (include a number of curves, each with a reasonable number n, 1-32 with step size 2) plot for the simple and Simpson's rule (r curves on the same plot). Also, draw a scalability table for (b) Include a set of scalability vs processors (include a number of curves, each with a reasonable number n, to be chosen by you) plots (b1) for the Simpson's rule (r curves on the same plot) (b2) for the Simple Scheme (c) Include an accuracy vs processors (include a number of curves, each with a reasonable number n, to be chosen by you) plot for the simple and Simpson's rule (r curves on the same plot) INPUTS The number of intervals, n, and the number of processors, p. 3. PROBLEM DESCRIPTION (40 points) Q 1. Write an MPI program for calculating the latency and communication time between two nodes using the ping pong algorithm as taught in class. Generate a curve by varying the data size between 0 and 512 bytes with increments of 32 bytes Generate another curve by varying the data size between 1kbytes to 128kbytes, with increments of 1k. Q 2. Write another MPI program for calculating the latency and communication time between two nodes using the hot potato algorithm as taught in class. Generate a curve by varying the data size between 0 and 512 bytes with increments of 32 bytes Generate another curve by varying the data size between 1kbytes to 128kbytes, with increments of 1k. 4. PROBLEM DESCRIPTION (60 points) Write an MPI parallel program for solving the Back Substitution algorithm as taught in class. However, you will implement this on a distributed memory machine (the Stampede), using a matrix size (diagonal) of size 128 by 128. Also, use 256 by 256, and 1024 by 1024 matrixes. First, you will create a matrix (no need to make the matrix generation program parallel), in which you will assume the values of X0, X1, .....X127 as X0 = 1.0, X₁ = 2.0, X2 = 3.0, ..... .X127 = 128.0 (all numbers will be double precision). Then you will randomly generate the values (plus or minus) of Ai, j coefficients and calculate the value of Bis 2 For example, the last equation in the 128 by 128 matrix will be A127,127 *X127= B127 X127 128.0, so generate A 127, 127 to be 3.25 (as an example), and thus B127 will be equal to 416.0. Similarly, you can assume the value of X126 in the next above equation to be 127.0, generate random values for A126, 126, and A 126, 127 on the left side of the equation and calculate the value of B126 on the right side of the equation so that the left and rights sides of the equation are equal if we substitute the values of X 127 and X128. After generating the matrix and the vector Bi, you can partition this matrix row-blocks across processors (assume the matrix is divisible by the number of processors). Calculate the speedup for the following combinations a. Matrix size = 128 by 128, number of processors = 4 b. C. Matrix size = 256 by 256, number of processors = 4 Matrix size = 256 by 256, number of processors = 8 d. Matrix size=1024 by 1024, number of processors = 4 e. Matrix size=1024 by 1024, number of processors = 8 f. Matrix size=1024 by 1024, number of processors = 16 Submissions; Submit your homework with a Word file and text files of the C code by email to the TA Addison Clark, addison.clark@mavs.uta.edu (not to the professor). Please send all code and all documents in a WORD file. No hand written material will be accepted. Deadline, May 2, 2023. 3See Answer
  • Q7: Translated from Greek to English - www.onlinedoctranslator.com System Programming Deadline: 13.06.2024 1. Write a smart contract market.sol in Solidity where you will implement a simple market. The smart contract will have three methods: a) addProduct, b) listProducts, c) buyProduct. A product is a string name. The market (the smart contract) contains a "mapping (string=>address) products" with all products and their mapping to Ethereum addresses (accounts) representing their owners and a mapping(string=>int32) with all products and their prices. The addProduct method adds a product (string parameter) with a value (int32 parameter) and msg.sender (the caller of the function) is set as the owner. The listProducts method returns the list of products (string[]) and their values (int32[]). The buyProduct method takes the product (string) as a parameter, and if the money paid (msg.value) is greater than or equal to the product price, it pays the owner the product price and changes the owner of the product. Compile, deploy in Ganache and call the smart contract methods. Write a short report where you provide screenshots of the above steps and your method calls and how they change the market state and the balances in users' Ganache accounts. Help: Use one account as seller and one account as buyer and initially add only one product. Also, for transferring money, each address has a balance field, so to transfer amount x from account A to B you can do A.balance -=x? B.balance += x 2. Write in C a countlabels.c program that will use MPI to count the number of subjects carrying each different label. The data will be read from the accompanying file in eclass at the location Documents-code/data.zip, which contains almost 70 thousand lines of the form subject <TAB> tag, eg, 100000170 African American The purpose of your program, to be developed with MPI, is for a coordinator process to read the file and break its processing into multiple chunks, each of which will count the occurrence count of each different tag and produce pairs of "tag, crowd" for all the different tags it encountered, and it will send all of these to the moderator. The moderator reading the results should sum them by tag and display them on the screen, e.g. African American 156 Caucasian 342 Hispanic 235See Answer

TutorBin Testimonials

I found TutorBin Distributed Computing homework help when I was struggling with complex concepts. Experts provided step-wise explanations and examples to help me understand concepts clearly.

Rick Jordon

5

TutorBin experts resolve your doubts without making you wait for long. Their experts are responsive & available 24/7 whenever you need Distributed Computing subject guidance.

Andrea Jacobs

5

I trust TutorBin for assisting me in completing Distributed Computing assignments with quality and 100% accuracy. Experts are polite, listen to my problems, and have extensive experience in their domain.

Lilian King

5

I got my Distributed Computing homework done on time. My assignment is proofread and edited by professionals. Got zero plagiarism as experts developed my assignment from scratch. Feel relieved and super excited.

Joey Dip

5

TutorBin helping students around the globe

TutorBin believes that distance should never be a barrier to learning. Over 500000+ orders and 100000+ happy customers explain TutorBin has become the name that keeps learning fun in the UK, USA, Canada, Australia, Singapore, and UAE.