Research and Thoughts on cloud computing/Distributed Computing

Source: Internet
Author: User
Cloud computing

Recently, because I want to run some largeProgramYour own book seems slow, and you don't want to buy a workstation, so you want to try the legendary cloud computing. According to the survey, there are two types of cloud computing companies: Google and Microsoft, which provide cloud web app host service such as Google App Engine and Windows azure, one is a cloud server provider like Amazon EC2 and rackspace. The main mode of the former is that you upload a web program. The company is responsible for maintaining the physical machine and ensuring the normal operation of the program. However, we do not have any control over the machine itself, nor can we use General C/C ++/MATLAB for scientific computation. The main mode of the latter is virtual machine leasing. We can get the root/Administrator permission of a machine, fully control it, and pay according to the time used.

I tried Amazon EC2 and rackspace based on my needs. The two service flows are similar. We can select CPU, memory, and operating system to create a virtual machine and determine the billing rate accordingly. After the machine is created, we will get an IP address, which can be fully controlled by SSH or RDP.

The services of the two companies have their own characteristics. According to rackspace help documents, the computing power of virtual machines may increase based on the selected CPU. For example, when the entire cluster has idle computing powerAlgorithmAllocate a certain CPU cycle to the user's machine. Amazon's computing capability remains unchanged, but the rate will change dynamically. Amazon EC2 will increase during peak hours, but will decrease during off-peak periods and be updated every 30 minutes. We can set the program to run only when the rate is lower than the number, or we can use the "fixed price" to run immediately. Although the two companies will call to confirm the registration, they feel that rackspace customer service is better, 24x7 services, live chat, and phone call at any time, customer Service GG is also enthusiastic.

However, after trying these services, we found that they were not very suitable for my requirements. Although the memory of these machines can be very large, the CPU performance is often not very good, the single machine is generally 4 Core cap, single core performance is equivalent to superpi 1 M 32 seconds. However, what we need now is high-performance computing capabilities. So I had to give up. Considering that data transmission requires fees, cloud computing is not suitable for data-intensive computing, and the CPU usage is not as good as computing-intensive computing. Therefore, from an economic point of view, it seems that cloud server is not reliable at this stage.

Distributed Computing

Today, I suddenly remembered something. If PHP is used to allocate computing data at the backend and JS is used to perform actual computing at the front end, it seems that simple distributed computing can be implemented. The advantage of this is that (1) Completely cross-platform computing and even the computing power of mobile devices can be used, so it has good concurrency. (2) end users do not need to install any additional software/runtime. I don't know how efficient JS is for computing. At the same time, there are some business models in it. For example, the end user will pay for it. Users can make full use of existing computing resources, such as making money without shutting down a browser at night. For the Organization's computing staff, the results can also be obtained at much lower than the price for renting a supercomputer.

It looks promising, but I was disappointed after some experiments and calculations. First, it is about JS efficiency. It takes 16 seconds to use superpi to calculate 1 M bit on my machine. I found a pi-based JS script on the Internet and calculated it as M PI in the browser. It took about 3 minutes to calculate it. It is not clear whether it is an algorithm problem, but considering that the original intention of JS design is to render the webpage and the method in which it is interpreted and executed, it does not seem suitable for scientific computing. Another problem is the business model. To promote this model, we need to be more competitive than traditional cloud computing, and cannot be more expensive than purchasing machines. For cloud computing, if you rent a cloud server for a few months, the current market cost is actually quite cheap (about $0.2/h for 4-core machines ), if we press down, we will be less attractive to end users (the money we earn from hanging up is not comparable to the electricity cost). However, for users who need computing power, this price is not very cost-effective, for example, it takes 0.2*24*30*4 = 576 knives to calculate a 4-month lease, and it is enough for you to configure an AMD 4-core machine. Therefore, it is difficult to make a difference.

As for the advantages of computing resources on mobile devices, I did an experiment using the python platform. The computing power of an iPhone 4 is about 1/40 of that of an i7 notebook. Therefore, the computing power of mobile devices is negligible. Even if we have five iPhones, the computing time is reduced by 10%. The JS efficiency issue and the time for developing a distributed platform are not considered here. Therefore, the distributed computing solution is not mature enough.

Another solution may be the go language. After reading Google's introduction, it can run on the amd64/x86/ARM platform and is very suitable for parallel computing. I don't know what will happen in the future.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.