Paste #33252: Untitled Paste

Date: 2016/05/01 17:33:11 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


[5:44 AM] TheExceed: @funnycube Did you say you have your server on a gpu?
[6:02 AM] funnycube: Did i?
[7:02 AM] vk2gpz: na, that was me
[8:29 AM] AaronL98: http://prntscr.com/aq2d2v
[8:30 AM] AaronL98: nailed it
[8:30 AM] funnycube: Looks like my spelling when it gets late.
[8:30 AM] AaronL98: lol
[8:46 AM] TheExceed: @vk2gpz Why?
[9:06 AM] vk2gpz: so that we can run the server on large amount of cores.
[9:07 AM] vk2gpz: we currently using very cheap <$100 graphics card with 96 cores
[9:16 AM] TheExceed: Clock speed?
[9:31 AM] vk2gpz: we do not alter clock speed atm, we are just experimenting how much we can improve server performance by doing massive parallel computation.
[9:31 AM] vk2gpz: for example, each mob searching players, etc, which can easily be computed in pararell.
[9:32 AM] vk2gpz: with this, we can detect every single move of mobs in addition to players
[9:32 AM] TheExceed: Are you using the minecraft server software or creating your own?
[9:32 AM] vk2gpz: we are heavily modifying spigot
[9:33 AM] TheExceed: But how does that affect mc if its all single threaded?
[9:33 AM] vk2gpz: when we move to purely GPU platform,
[9:33 AM] TheExceed: dead locking?
[9:33 AM] vk2gpz: we would like to write it from scratch
[9:33 AM] vk2gpz: that's why we're modifying it to be multi threaded
[9:34 AM] vk2gpz: there are several techniques you can use to build multi threaded game engine
[9:35 AM] cyberpwn: hi there,
[9:35 AM] cyberpwn: if i may suggest something whilst writing from scratch
[9:35 AM] cyberpwn: Use a Fork
[9:36 AM] cyberpwn: https://github.com/GlowstoneMC/GlowstonePlusPlus
[9:41 AM] TheExceed: @vk2gpz
[9:41 AM] vk2gpz: ?
[9:43 AM] TheExceed: Cyberpwn was speaking to you
[9:43 AM] TheExceed: 😛
[9:44 AM] vk2gpz: is that a multithreaded engine?
[9:44 AM] vk2gpz: or just regular single threaded?
[9:44 AM] vk2gpz: does it use OpenCL or CUDA?
[9:45 AM] vk2gpz: we're porting GPU part using OpenCL
[9:45 AM] vk2gpz: so that we can use any spare Graphics Card lying around
[9:50 AM] cyberpwn: The problem with multithreaded isn't about if it is based on a multithreaded fork. You cant exactly get anything completely multithreaded. For example if you create a plugin implementation, what thread are they on? Because if you are using multithreaded implementations you will end up locking those threads until they reach a safe point to deliver whatever the plugin is requesting. For example, a plugin requesting a list of players. Since that list is actively used by multiple threads, where is your safe point?

Another big problem is networking, and packets. 

Glowstone supports some multithreading, but you have to understand that 60% of all of a minecraft server implementation cannot be multithreaded.
[9:51 AM] vk2gpz: no, we're porting multithreaded engin to OpenCL
[9:51 AM] vk2gpz: and calling them through JNI
[9:51 AM] vk2gpz: if you use the current fork(s), no, they are based on single thread engine
[9:52 AM] cyberpwn: This is another layer. It does not matter what your using for multithreaded, we are talking about things that cannot be multithreaded. It doesnt matter what engine you are using.
[9:52 AM] vk2gpz: yes, you can.
[9:52 AM] vk2gpz: not all game engine has to be single thread base
[9:52 AM] cyberpwn: I'm talking about asynchronous threading. We may be talking about something different.
[9:53 AM] vk2gpz: have you done GPU programming?
[9:53 AM] vk2gpz: as a part of this port
[9:53 AM] vk2gpz: we're making MC multithread base
[9:54 AM] cyberpwn: A bit, i have not had as much experience with OpenCL as i have with GL, but one thing is the same across all of this. Your implementation cannot be fully async. You can make many things async, but not all of it
[9:54 AM] vk2gpz: well, that's what my Master students and former PhD students are working atm.
[9:54 AM] vk2gpz: and prototype is working great
[9:54 AM] cyberpwn: Nice, good to know.
[9:55 AM] cyberpwn: hope you go far.
[9:55 AM] vk2gpz: well, Master students have 6 more weeks to complete demo version
[9:55 AM] cyberpwn: Open Source?
[9:55 AM] vk2gpz: nop.
[9:56 AM] vk2gpz: out institution has IP
[9:56 AM] vk2gpz: our*
[9:56 AM] vk2gpz: and it is sponsered by a commercial game studio.
[9:56 AM] vk2gpz: so it won't be open source
[9:56 AM] cyberpwn: Well if it was not sponsored, There are some pretty smart people out there without pieces of paper.
[9:57 AM] vk2gpz: we're targetting making really massive multi player platform
[9:57 AM] vk2gpz: we even have multicasting module...
[9:57 AM] cyberpwn: You're going to have to create a client
[9:57 AM] vk2gpz: we already have
[9:58 AM] vk2gpz: which sits between our server and regular client
[9:58 AM] cyberpwn: Installed on the end user machine?
[9:58 AM] vk2gpz: yes, this is a prototype (proof of concept)
[9:58 AM] vk2gpz: so we don't really care about
[9:58 AM] vk2gpz: installing somehting on the client machine
[9:59 AM] cyberpwn: Ok, i thought you were making a fully multithreaded server capable of serving the already existing client out there
[9:59 AM] vk2gpz: atm, it pushes an appripriate dynamic library for client's platform
[9:59 AM] vk2gpz: using JNLP
[9:59 AM] cyberpwn: So it's not going to work with the current protocol right, your using a seperate client
[10:00 AM] vk2gpz: atm, it's modified, but one student is looking into the middleware
[10:00 AM] vk2gpz: to bridge existing protocol
[10:00 AM] vk2gpz: his main task is the support of multicast
[10:00 AM] cyberpwn: But it would still require the end user to do something extra than just connect
[10:00 AM] cyberpwn: right?
[10:01 AM] vk2gpz: no
[10:01 AM] cyberpwn: I'd love to see that
[10:01 AM] vk2gpz: well,atm, we're using JNLP to push something we need at the client side
[10:02 AM] cyberpwn: that's easier to do than using the existing client
[10:02 AM] vk2gpz: it automatically deliver dynamic lib suited to client's os.
[10:02 AM] cyberpwn: ......... for
[10:03 AM] vk2gpz: atm, it's mainly for deploying multicast capable code
[10:04 AM] cyberpwn: Ok,