Jump to content

How do I pool resources with two computers?

I know what your thinking "dude this has been discussed before. No connection is fast enough..." Well in this video you "Linus" said that it was possible with 100gb/s which I have. YouTube Video. around 6:43. Please Help...

Link to comment
Share on other sites

Link to post
Share on other sites

It's not just a matter of bandwidth, but latency. It's hard enough to pool vRAM between two graphics cards in the same system. System RAM operates at nanosecond latencies and at speeds much faster than 100Gbps.

Link to comment
Share on other sites

Link to post
Share on other sites

Yes, but this connection is infiniband it was made with lower latency for this purpose.

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Poet129 said:

How do I pool resources with two computers?

You don't. An application has to specifically support distributed processing, you can't just take any random software and make it work across multiple nodes.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

You would need application specific software and quite possibly a specific OS to run said software (usually some variant of Linux).

This really depends on what you're trying to do specifically though. Sometimes you can pull this off with scripts depending on the task.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Poet129 said:

I'm not asking IF it can be done, but how?

First we have to know what it is you are trying to do. Some tasks can work in a compute cluster a lot cannot. Some can half-work with scripts. If you just want to build it for the sake of building it you could consider using that link for a distributed storage network (SAN) using something like GlusterFS on Linux.

 

Now sharing CPU & RAM resources is more complicated than that. You need an application that can leverage a function like that. Without one it doesn't matter if you can build it you won't be able to use it.

Link to comment
Share on other sites

Link to post
Share on other sites

Is there any kind of hyper visor that can take advantage of that?

Link to comment
Share on other sites

Link to post
Share on other sites

27 minutes ago, Poet129 said:

Is there any kind of hyper visor that can take advantage of that?

almost all hypervisors support clusters, but thats so you can mange it easier and do live migration. You can't run one vm across multple nodes.

 

 

Whats your goal here, what do you want to speed up?

Link to comment
Share on other sites

Link to post
Share on other sites

Well I have two PCs with ddr3 and ddr4 memory both 16gb looking for a way to stack it so 32gb. I know that half of it would still run slower but I would like to combine the ram. And if possible the cpu.

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Poet129 said:

Well I have two PCs with ddr3 and ddr4 memory both 16gb looking for a way to stack it so 32gb. I know that half of it would still run slower but I would like to combine the ram. And if possible the cpu.

For hypervisors I can recommend Proxmox. Downside is the two servers aren't going to seamlessly share data between processors & memory. Each instance of Proxmox will use it's own CPU & RAM but a very fast link between the two can be used for rapid transfer of data, containers, or VMs. You could also have your containers & VMs talk to one another between the two over the infiniband NIC.

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, Poet129 said:

I know what your thinking "dude this has been discussed before. No connection is fast enough..." 

 

Thats not what I'm thinking. 

What im thinking is that about a dozen other people have asked this question, and theres quite indepth thread explanations about this. 

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO | 12 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Poet129 said:

Well I have two PCs with ddr3 and ddr4 memory both 16gb looking for a way to stack it so 32gb. I know that half of it would still run slower but I would like to combine the ram. And if possible the cpu.

 

6 hours ago, Poet129 said:

Is there any kind of hyper visor that can take advantage of that?

 

 

Thats not how clustering or hypervisors work. 

Theres 2 main types of clustering when it comes to compute. Theres distributed/parallel computing, and failover cluster. 

Essentially distributed computing works by some sort of load balancing/assignment mechanism that assigns tasks to each node.

Each node can only use the hardware that it's built with. The CPU, with its PCIe backbone, memory, etc...

 

As mentioned above though, distributed compute is very specialised apart from purpose built systems it is done at the application level. 

If you have some sort of application you have in mind that utilises parallel compute, then Infiniband would be an ideal solution for storage on a cluster. 

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO | 12 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

Anyway to make a existing program scale (assuming it is opensource)?

Link to comment
Share on other sites

Link to post
Share on other sites

So to give you an example of this that I setup just for fun. 

 

I have a server running ESXI and vSphere (VMWare's Hypervisor). This is a 6 core PC @ 3.3ghz with 48gb of RAM. 

On another PC I installed ESXI and joined it to the cluster. Now I was running this ESXI instance within VMWare Workstation as a nested hypervisor. Not a practical approach, but this was just experimenting. From this device I allocated 6 cores @ 3.8ghz and 24gb of RAM. 

 

So vSphere works out available CPU resources as overall 'ghz' available. From the main server 3.3ghz x 6 cores = 19.8ghz. From the second PC, 3.8ghz x 6 cores = 22.8ghz. So by joining these to a cluster it totaled 42.6ghz available. The RAM just adds up so it totaled 72gb of RAM available.

 

Now all the VM's running on the server would be able to take advantage of the available 42.6ghz and 72gb of RAM. However, as this was over a standard gigabit network, you would definitely start to see pretty major performance hits. 

Alternatively, you could setup vMotion or DRS (can't remember exactly the name of the feature), which would effectively move the VM to the host with the available resources if one host started to max out. Now this is not too bad if you are using central storage for hosting the VM's. Originally I had them stored on a NAS. And while the NAS was pairing gigabit NIC's, it was quite a slow process for working with the VM's. Usable, but annoying. 

If you are using local storage, this isn't ideal as transferring 100gb VM's between hosts is not efficient. 

 

Anyway, this is an example of how it can work with a hypervisor. 

I am lucky enough to get VMWare licensing through work. I am aware of how expensive it normally is and it isn't really an option for most home users to take this route. 

Link to comment
Share on other sites

Link to post
Share on other sites

58 minutes ago, DogKnight said:

Now all the VM's running on the server would be able to take advantage of the available 42.6ghz and 72gb of RAM.

I think this might be a bit unclear from the wording...but just to clarify, a single VM cannot access all host resources in the cluster at a time. 

A single VM can only access the CPU/Memory resources on the host on which its assigned to, so 6C/48GB on Host1, and 6C/24GB on Host2. 

The reason for clustering the hosts together is to enable HA & DRS, so you can automatically move or failover the VM's to different ESXi hosts as required. 

 

58 minutes ago, DogKnight said:

I am lucky enough to get VMWare licensing through work. I am aware of how expensive it normally is and it isn't really an option for most home users to take this route. 

 

You can get the licenses free for personal use with a VMUG Advantage subscription. It's $200 per year, and also gives you extra perks like VMware training and exam discounts. 

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO | 12 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Jarsky said:

I think this might be a bit unclear from the wording...but just to clarify, a single VM cannot access all host resources in the cluster at a time. 

A single VM can only access the CPU/Memory resources on the host on which its assigned to, so 6C/48GB on Host1, and 6C/24GB on Host2. 

The reason for clustering the hosts together is to enable HA & DRS, so you can automatically move or failover the VM's to different ESXi hosts as required. 

 

 

You can get the licenses free for personal use with a VMUG Advantage subscription. It's $200 per year, and also gives you extra perks like VMware training and exam discounts. 

 

Reading it back, you're right. Should have worded that better.

 

And completely forgot about VMUG. Definitely a good option if you want to get experience in the world of VMWare. 

Link to comment
Share on other sites

Link to post
Share on other sites

On 7/22/2019 at 12:37 AM, Poet129 said:

Well I have two PCs with ddr3 and ddr4 memory both 16gb looking for a way to stack it so 32gb. I know that half of it would still run slower but I would like to combine the ram. And if possible the cpu.

Even with a Hypervisor -- it still depends on what you're trying to do -- what application you're trying to run underneath.

 

For example, many HPC applications for like computer aided engineering (CAE)/finite element analysis (FEA)/computational fluid dynamics (CFD) will support distributed parallel processing, so you take one big problem and divided into smaller pieces so that each piece will have and use its own RAM and its own processor core.

 

But as someone else said, not all programs are able to take advantage of that.

 

For example, Blender had/has network rendering capabilities, but what they do is that instead of having all of the combined CPU cores are working together on a SINGLE frame, each node on the network renders its own frame and then its tied back together. (Or what some people do is just write out the image files and then they composite that into an animation (stitch it back together) using a video editing software instead.)

 

That's a different way of taking one big problem and dividing it into smaller pieces so that lots of computers can work together on that one big problem.

As another example, for my CAE/FEA/CFD stuff, those programs are written and designed for HPC, so they will take "a frame" of the picture and break it up and split it across n-number of CPU cores and have each CPU core work on a single "frame" together.

 

A LOT of programs AREN'T written like that.

 

Usually, the best and easiest way to tell whether you'll be able to run something using that topology/paradigm is if they use something called message passing interface (MPI). If they use MPI, chances are, it will support what I think you're asking your network of computers to do.

 

If there's no mention of it in regards to the software of choice that you're looking at ANYWHERE in the documentation or if you've emailed the vendor and they tell you that their software doesn't use nor support MPI, then what you're trying to do most likely WON'T work.

 

This will be true like 99.9999% of the time.

(MATLAB is a bit of an odd ball because I actually don't know whether they're using MPI or not for starting up the slaves. I think they do, but it's not explicitly written when you start up the parallel pool in MATLAB.)

 

Hope this helps.

IB >>> ETH

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×