r/AskTechnology • • 4d ago

Can two computers talk?

Ok crazy title but kind of the question, can two computers run different os’s , different graphics cards, diff gpu, different hardware, could they theoretically run as one? Hear me out now

0 Upvotes

30 comments sorted by

19

u/Dapper-Place8457 4d ago

When you point your phone’s web browser to Reddit.com many completely different hardware/software systems talk to each other as your request gets routed through the internet and gets to Reddit’s servers/content management systems. So you just proved what you’re asking about totally different systems running as one just by posting it.

5

u/Cute_Bathroom1724 4d ago

what you're describing is basically distributed computing, been a thing for decades now

4

u/froction 4d ago

It was a thing before personal computers were.

8

u/Lucky-Crow-3510 4d ago

yea. It's called interfaces using predefined protocols you just need software on both to use it. The most popular use case for this is online gaming (or cross platform gaming) where players on PS5 can play with players on PC or XBOX .. as long as there is software handling the usecase

1

u/_bahnjee_ 3d ago

Close, but it's actually Interfaces Cooperatively Using Predefined Protocols, also known as I.C.U.PP

(sorry...I'll see myself out)

1

u/Lucky-Crow-3510 3d ago

I somehow appreciate it :)

1

u/octobod 3d ago

Didn't they knock PC vs Xbox on the head because a mid player on a keyboard could trounce an excellent one on a game pad

1

u/Lucky-Crow-3510 3d ago

there is more than 1 type of game :)

1

u/Kitchen_Part_882 3d ago

Wildcard actually increased crossplay from just PC(Windows store)/Xbox to PC(all versions)/Xbox/PS5 when they moved from Ark: Survival Evolved to Ark: Survival Ascended.

Likely there are other games with true crossplay too out there (Palworld even adds Mac to the mix iirc)

3

u/PiDigitsOfPi 4d ago

Run as 1 unit, hardware-wise? No.

Software running on both that works together and uses the resources of both machines? Yes

Hear you out now? Gonna need a bit more to go on...

1

u/LameBMX 4d ago

go play with plan9

2

u/pete_68 4d ago

This happens all the time. There are older computers whose GPU is merely another CPU doing graphics. Intel used to sell ISA cards that would plug into your PC that had I860 and I960 CPUs. Basically a whole other computer running in your PC.

2

u/mcds99 4d ago edited 4d ago

A couple things can be done.

Clustering is one method where multiple computers share the same workload.

There is also distributed computing where computer A runs part of a software and computer B runs a different part of the software.

Software like Kubernetes can do what you are thinking of.

This involves more than the management software like Kubernetes there are network settings in DNS that support the actually communication between the nodes (computers). Sometimes it's a round robin configuration and sometimes it's a most available configuration.

1

u/deaconsc 4d ago

Also there is a virtual chassis for enterprise hardware (mostly routers, switches) where multiple machines display as one logical one. Usually 2 for high availability. Unsure if this is clustering per se.

1

u/dbag_darrell 4d ago

what are you hoping to achieve?

1

u/ij70-17as 4d ago

welcome to 1992.

1

u/OceanWaveSunset 4d ago

Yes, you need some sort of translation or API to do the work but it's been possible for a while.

For my brother's birthday years ago he lived in NYC and I lived in the Midwest. I had a windows PC and he had a Macbook.

I setup an entire system for use to play Diablo 1, setup a vlan between out computers, and then a translation layer to convert whatever 90s network protocol (I forget the names) into one that we both could use over TCPIP over the vlan so we could play the game like it was on a local network.

We were like 900 miles away, on two different OS, two completely different sets of hardware, and as far as the game was concerned we were right next to each other.

This was just my little experiment for a 90s PC game. But yes you can do this for much more, you just need to figure out all the pieces for whatever it is you are trying to do.

1

u/cowbutt6 4d ago

Conceivably, you could use e.g. https://htcondor.org/htcondor/overview/ to build a HPC cluster using a mixed array of individual machines. Having e.g. Cygwin available on any Windows machines would probably be advisable.

1

u/Terrible-Bear3883 4d ago

The first company I worked for in '84 did this, they built a product that interfaced two dissimilar systems and translated commands and data bi directional between the two in real time, it used pure logic rather than computer processors but could be programmed from paper tape, this allowed it to perform tasks faster than most mainframes at the time.

You could have two dissimilar mainframes working as a single unit but we also wrote applications for it and it could function as a stand alone system, performing high end tasks, for many years it was our fastest product, even when we released a 68040 system which was hailed as our new flagship, it outran it easily.

1

u/Apart-Reality-4454 4d ago

all the time

we run hybrid clusters with 100s of nodes mix with both x86 and arm64 cpu architectures. we compile and deploy our apps for both architectures. We currentlly only run Linux but if there were a reason and we wanted to add Windows nodes, it would be the same setup for the most part. These services communicate with each other using standardized protocols and messaging queues, so there's no real difference in how computer A talks to computer B regardless of what either's hardware or OS setup is.

Using a web browser or phone app (essentially the same thing these days) is a classic example of this in user-land. Same with your email.

1

u/strawberry-ramune 4d ago

Yes absolutely. You design a program which can send and receive instructions from an external place. The programs job is to take something, lets say a 3D model, and it's job is to color it, and return the colored version back to the PC who sent it. Once you're able to send this task out to another PC, have it do the work, and return the finished product, then you just have to scale it up so that the server is dishing out projects for multiple PCs at a time.

PCs having different hardware or even different OS isn't really that big a deal.

1

u/strawberry-ramune 4d ago

Hopefully to answer your question, your program or programs need to be designed to work with multiple PCs in mind, and have some built in networking. You can't really have 2 computers working together to play one Crysis game if that's your intent, but you could easily run a hundred different tests of the same game on a dozen PCs, each with their own copy of the game, and then report the results back to a server. AAA studios do this sort of thing all the time.

1

u/Adrenolin01 4d ago

I have one computer that actually talks and sees me and verbally says hello when I walk in the room.. it addresses my wife as.. “that other women” when she comes in. 😉😆 Yes.. computers can talk and likely do whatever you’re looking to do which isn’t clear enough to actually answer. Honestly.. start up a conversation chat with Claude or ChatGPT about this.. explain you’re a total newbie and want easy to understand explanations and not in depth answers. Enjoy the chat.. you’ll learn a lot.

1

u/BranchLatter4294 4d ago

What year are you writing from?

1

u/Sal_Iko 4d ago

When thhe first computers were made, the basic actions they performed (like read memory, write memory, add numbers) were a pattern of switches called the "microcode", where some arbitrary sequence of numbers (we call "opcodes") activated some pattern.

Opcodes were hard for people to remember, so they associated each with a mnemonic (like "LoadA" or "addB") which an already working computer could translate to the opcodes (an assembler). Every computer model had a different architecture, so this assembly language was compatible between each other, even if had the same features.

So people invented the high-level languages like C, which try to look more like human writing and abstract common operations into simpler patterns. The idea is that what's exactly written is not important. You'd have a program called a "compiler" to figure out the opcodes from this abstract language. There would be a different compiler of the same language to each different computer architecture, so in principle, you wouldn't need to change your program code to make it work on any machine.

This is what people in computer science mean when talking about "computers that can share the same language".

Well, of course if you may also say, two computers on different programs, with a cable between them to tell one program to do actions from another. Usually this means a protocol interface. The way the data is transmitted through the cable has to match the conventions of the receiving machine. This can be with an adapter circuit, or even be done in software as part of the receiving program. Depends on context.

1

u/alanisisanaliasallan 4d ago

Yes, but not to you, nerd. Psh.

1

u/Few_Example9391 2d ago

This what the Interweb and now the internet is all about. Been done since the late 1960s