WO2023022717A1 - Adjustments of remote access applications based on workloads - Google Patents

Adjustments of remote access applications based on workloads Download PDF

Info

Publication number
WO2023022717A1
WO2023022717A1 PCT/US2021/046634 US2021046634W WO2023022717A1 WO 2023022717 A1 WO2023022717 A1 WO 2023022717A1 US 2021046634 W US2021046634 W US 2021046634W WO 2023022717 A1 WO2023022717 A1 WO 2023022717A1
Authority
WO
WIPO (PCT)
Prior art keywords
remote access
application
processor
environmental
change
Prior art date
Application number
PCT/US2021/046634
Other languages
French (fr)
Inventor
Daniel Henrique GREHS
Alexandre Santos Da Silva, Jr.
Eric John GRESSMAN
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2021/046634 priority Critical patent/WO2023022717A1/en
Publication of WO2023022717A1 publication Critical patent/WO2023022717A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Definitions

  • Computing devices can be used to communicate with other computing devices remotely.
  • computing devices can use remote access tools to access remotely located computing devices to access data.
  • a computing device can access another workstation or home computer to access files on the remote devices or execute applications hosted by the remote devices, and so forth.
  • the remote access tools can be used to provide additional functionality, such as communicating via video calls.
  • FIG. 1 is a block diagram of an example an apparatus of the present disclosure with a remote access application that can dynamically adjust settings based on environmental workloads of the apparatus;
  • FIG. 2 is a block diagram of the example apparatus in a network with other computing devices executing the remote access application of the present disclosure
  • FIG. 3 is a more detailed block diagram of an example apparatus of the present disclosure with a remote access application that can dynamically adjust settings based on environmental workloads of the apparatus;
  • FIG. 4 is a flow chart of an example method to dynamically adjust settings of a remote access application based on environmental workloads of the present disclosure.
  • FIG. 5 is an example non-transitory computer readable storage medium storing instructions executed by a processor to dynamically adjust settings of a remote access toll based on environmental workloads of the present disclosure.
  • Examples described herein provide an apparatus and method to dynamically adjust settings of a remote access application based on environmental workloads.
  • computing devices can be used to communicate with other computing devices remotely.
  • computing devices can allow users to remotely connect to another computing device and to execute software on a sender device to make it appear as if the user is accessing the remote device locally.
  • Remote access applications can also provide video conferencing applications that allow two or more users to communicate with one another.
  • Computing devices can also be used to perform other tasks, computations, execute other applications, and the like.
  • a computing device may have limited processing and memory resources.
  • the remote access application may consume a certain amount of processing and memory resources to process video images, audio data, and other types of data that may be transmitted during a video call to other computing devices.
  • certain resources may be overconsumed by the computing device, leading to a degradation of the user experience of the remote access application. For example, due to a lack of processing resources available, the video quality may be degraded, causing a delay in the video transmission, a mismatch of the video with the audio causing lip sync issues, and the like.
  • the present disclosure provides an apparatus and method that can dynamically adjust settings of remote access applications to compensate for changes to available resources on an apparatus or computing device.
  • the apparatus may gather environmental workload information and make changes to settings of the remote access applications as available processing and/or memory resources change over time while the remote access application is being executed.
  • the remote access application may have adjustable advanced settings that can adjust how video is compressed, the audio quality level, how text is rendered, and the like. Changes to these advanced settings can improve the remote access session experience as the environmental workload changes.
  • the remote access application may use available processing resources on a graphical processing unit (GPU), or vice versa. If the random access memory (RAM) is being consumed by other applications, the remote access application may temporarily use available memory on a solid state drive or hard-drive of the apparatus, and so forth.
  • CPU central processing unit
  • GPU graphical processing unit
  • RAM random access memory
  • the changes may be made based on preset rules or machine learning algorithms.
  • the machine learning algorithms can be trained based on a model to make decisions as to how the advanced settings should be adjusted based on the observed environmental workloads.
  • the present disclosure may maintain a quality user experience for a remote access session even as the amount of available processing and/or memory resources changes over time on the apparatus.
  • FIG. 1 illustrates an example apparatus 100 of the present disclosure.
  • the apparatus 100 may be deployed as a desktop computer, a laptop computer, a tablet computer, or any other type of computing device.
  • the apparatus 100 may include a display, input devices (e.g., a keyboard, a touchscreen, a mouse, a trackpad, and the like), and other components that are not shown.
  • the apparatus 100 may include a processor 102, a memory 104, a workload monitor 112, and a communication interface 114.
  • the processor 102 may be communicatively coupled to the memory 104, the workload monitor 112, and the communication interface 114.
  • the memory 104 may be a non-transitory computer readable medium to store information.
  • the memory 104 may be a solid state drive, a hard disk drive, a random access memory (RAM), a readonly memory (ROM), and the like.
  • the memory 104 may store instructions 106, applications 108, and a remote access application 110. The instructions 106 may be executed by the processor 102 to perform various functions as described herein.
  • the instructions 106 may cause the processor 102 to execute the remote access application 110, to detect a change to environmental workload information caused by execution of a second application (e.g., one of the applications 108), and to change settings of the remote access application 110 in response to the change to the environmental workload information caused by the second application. Details of the functions executed by the processor 102 in accordance with the instructions 106 are discussed in further details below.
  • the applications 108 may include other programs that can be executed by the processor 102.
  • the applications 108 may include photo editing software, video games, content streaming applications, productivity programs (e.g., word processing, spreadsheet, database, and the like), web browsers, and the like.
  • the remote access application 110 may be a tool that can allow the apparatus 100 to connect to other remotely located devices.
  • the remote access application may allow the apparatus 100 to connect to a server to access files, to conduct a video call, and the like.
  • the apparatus 100 may connect to a remotely located device via the communication interface 114.
  • the communication interface 114 may be a wired (e.g., an Ethernet connection) or wireless interface (e.g., a Wi-Fi radio).
  • FIG. 2 illustrates an example network 200 that includes the apparatus 100 and an example of how the apparatus 100 can connect to a computing device 202 via the remote access application 110.
  • the network 200 may include an Internet protocol (IP) network 204.
  • IP Internet protocol
  • the IP network 204 has been simplified for ease of explanation and may include additional network elements that are not shown (e.g., gateways, firewalls, border elements, additional access networks (e.g., a cellular network, a broadband network, and the like), network switches, and the so forth.
  • additional network elements e.g., gateways, firewalls, border elements, additional access networks (e.g., a cellular network, a broadband network, and the like), network switches, and the so forth.
  • the IP network 204 may include an application server (AS) 206 and a database (DB) 208.
  • the DB 208 may store various information.
  • the AS 206 and DB 208 may be managed by an Internet service provider or communications service provider to allow the computing device 202 connect to the apparatus 100 over the IP network 204.
  • the computing device 202 may be a desktop computer, a laptop computer, a server, and the like.
  • the computing device 202 may be located remotely from the apparatus 100.
  • the computing device 202 may be located at a home location.
  • the apparatus 100 may be a computing device located at an office location.
  • the apparatus 100 may include a display 120 to provide a graphical user interface (GUI) and input devices 122 and 124.
  • GUI graphical user interface
  • the input device 122 may be a keyboard and the input device 124 may be a mouse or a trackpad.
  • the computing device 202 may also include a display with a GUI and input devices.
  • the apparatus 100 may launch the remote access application 110 in response to a request to connect from the computing device 202 to establish a remote access session.
  • the apparatus 100 may establish a wired or wireless connection over the IP network 204 via the communication interface 114.
  • the apparatus 100 may be a sender device that sends video images and/or data to the computing device 202.
  • the apparatus 100 may transmit video images of a virtual desktop to the computing device 202 to make it appear as if the user on the computing device 202 is accessing the apparatus 100 locally.
  • the remote access application 110 may include various settings that optimize how the remote access application 110 performs.
  • the settings may include various settings that can affect video quality, audio quality, compute speed, network delivery, and so forth.
  • Example settings may include selecting a type of video codec that is used for compressing video, selecting a type of audio codec that is used for processing audio, selecting a refresh rate for video, selecting a compression rate for data transmission, and the like.
  • the processor 102 may automatically change settings of the remote access application 110 based on environmental workload information obtained by the workload monitor 112.
  • the workload monitor 112 may be communicatively coupled to the processor 102 and the memory 104 to collect environmental workload information.
  • the environmental workload information may include operational status information of the apparatus 100. Said another way, the environmental workload monitor 112 may monitor a usage of processing resources (e.g., the processor 102 or a graphical processing unit (GPU)), usage of memory resources (e.g., the memory 104, or any additional memory in the apparatus 100), processing threads used, and the like.
  • the environmental workload monitor 112 may also collect information related to what computing resources are being consumed by the remote access application 110 and any other applications 108 that are being executed by the processor 102.
  • the environmental workload information may also include what version of remote access application 110 is being executed and what settings are available on the remote access application 110.
  • the processor 102 may receive the environmental workload information and make changes to settings of the remote access application 110 to balance the available amount of computing resources between the remote access application 110 and other applications 108 that are being executed on the apparatus 100. In other words, the processor 102 may try to make changes to the settings of the remote access application 110 to optimize the performance and/or user experience of the remote access application 110 and any other applications 108 that may be executed simultaneously on the apparatus 100.
  • FIG. 3 illustrates a more detailed block diagram of an apparatus 300 that describes in more detail how the changes to the settings may be performed based on the environmental workload information.
  • the apparatus 300 may be similar to the apparatus 100.
  • the apparatus 300 may include a processor 302, a memory 306, a workload monitor 320, and a communication interface 328.
  • the processor 302 may be communicatively coupled to the memory 306, the workload monitor 320, and the communication interface 328.
  • the communication interface 328 may be a wired or wireless communication interface.
  • the communication interface 328 may be an Ethernet connection, a Wi-Fi radio, and the like.
  • the memory 306 may be a non-transitory computer readable medium that may store various information.
  • the memory 306 may be a hard disk drive, a solid state drive, a random access memory (RAM), a readonly memory (ROM), and the like.
  • the memory 306 may store instructions 308, applications 310, and a remote access application 312.
  • the instructions 308 may be executed by the processor 302 to perform the functions described herein.
  • the instructions 308 may cause the processor to execute the remote access application 312, to detect a change to environmental workload information caused by execution of a second application (e.g., one of the applications 310), and to change settings of the remote access application 312 in response to the change to the environmental workload information caused by the second application.
  • a second application e.g., one of the applications 310
  • the applications 310 may include other programs that can be executed by the processor 302.
  • the applications 310 may include photo editing software, video games, content streaming applications, productivity programs (e.g., word processing, spreadsheet, database, and the like), web browsers, and the like.
  • the apparatus 300 may further include a graphical processing unit (GPU) 304, a decision making device 324, and additional memory 326.
  • the GPU 304 may be a dedicated graphics processor that can also be leveraged by the apparatus 300 to perform other processing tasks when available processing resources of the processor 302 are low.
  • the additional memory 326 may be separate from the memory 306.
  • the memory 306 may be a hard disk drive and the memory 326 may be RAM or a second hard disk drive, and so forth.
  • the processor 302 may allocate memory resources from the memory 326 to the applications 310 or to the remote access application 312, as described in further details below.
  • the decision making device 324 may be a machine learning model (e.g., instructions executed by the processor 302 to make automated decisions based on trained models) to automatically determine when settings of the remote access application 312 should be changed.
  • a machine learning model e.g., instructions executed by the processor 302 to make automated decisions based on trained models
  • the machine learning model may apply a reinforcement learning model to determine settings of the remote access application 312 with less guidance or development bias, and to allow the machine learning model to create its own systems to determine settings outputs.
  • Reinforcement learning can be structured as an agent that will change and interact with the environment, while an outside interpreter rewards the agent and indicates a positive or negative result for settings with respect to a previous state of the settings.
  • the remote access session measured values of frames per second, image quality, and audio quality can be regarded as goals in which the higher these values can be achieved, the more positive rewards are granted, while lower values grant negative rewards.
  • the rewards could also be dynamically updated in a continuous learning environment according to the current user profile, machine profile, and the current state of the system.
  • Another example of a machine learning model may be transfer learning.
  • the transfer learning technique allows for trained models to define a best effort configuration and enhance the user experience of the remote access session for a user based on previously mapped scenarios. For example, knowledge gained while learning to recognize a high-quality image (positive scenario) could be applied when trying to achieve a high-fidelity stream in a remote session.
  • the initial model could be leveraged as a base solution, and a centralized, cloud-based knowledge repository could be established with new and updated scenarios and problems that could be added to this cloud library and deployed to systems, such as operably coupled remote access management tools, with similar conditions.
  • This cloud repository could also be populated with more than one base for various known scenarios and environments.
  • a Long Short-Term Memory (LSTM) network can be established to consume the aggregated data or data created by various previously generated real-life or simulated scenarios that can be labeled and tied to ground truths crafted and deployed to reflect a selected remote access session configuration given the specific case and circumstances surrounding the system at the time.
  • the LSTM model also benefits from a continued observation of the system, whereas sudden changes such as to internet connection quality, profile, and usage patterns are more readily processed, while the past knowledge is still taken into account, and new configurations are put in place.
  • a clustering model can present the data set mapped by systems with the remote access sessions which are categorized into different sets of configuration clusters that are tied to given scenarios (where, for example, some configuration clusters favor a higher frame rate per second and lower input latency while other configuration clusters favor image and audio quality). These generated configuration clusters could then be turned into the configuration settings for the remote access application 312.
  • the decision making device 324 may use presets instead of the machine learning models.
  • a plurality of preset conditions may be stored in the memory 306.
  • the preset conditions may indicate that if a certain condition or scenario is met, then the settings of the remote access application 312 should be changed to a particular configuration.
  • the remote access application 312 may be executed to allow the apparatus 300 to connect to another computing device.
  • the apparatus 300 may be a home computer and another remotely located computing device may try to access the apparatus 300.
  • the remote access application 312 may be executed to allow the remotely located computing device to connect to the apparatus 300.
  • the apparatus 300 may transmit virtual desktop video images and other data to the remotely located computing device.
  • the workload monitor 320 may gather environmental workload information and generate an environment map 322.
  • the environment map 322 may use the environmental workload information that is gathered, along with user profile 316 and workstation profile 318, to create a view of what computing resources are currently being used and how the usage of the computing resources may change at a future time.
  • the decision making device 324 may use the environment map 322 to determine optimal settings for the remote access application 312 at a given time. If the settings of the remote access application 312 do not match the optimal settings determined by the decision making device 324, the processor 302 may change the settings on the remote access application 312 to match the optimal settings.
  • the user profile 316 may provide information associated with a user who is logged into the apparatus 300.
  • the user profile 316 may indicate typical applications 310 launched by the user and what dates and times (e.g., usage patterns) the user launches each application 310.
  • the workstation profile 318 may indicate available computing resources of the apparatus 300.
  • the workstation profile 318 may indicate a type of processor 302 (e.g., a clock speed, a number of threads, the type of processor 302, and the like), a type of GPU 304, an amount of memory available (e.g., the memory 306 may be a 500 gigabyte solid state drive that can be partitioned, the memory 326 may be 32 gigabytes of RAM), and so forth.
  • the workload monitor 310 may monitor the amount of system resources that is currently being used.
  • the environmental workload information may include what applications 310 are being executed, amounts of processing power of the processor 302 and the GPU 304 that are being used, and the amounts of the memory 306 and memory 326 that are being used.
  • the environment map 322 may indicate that 67% of the capacity of the processor 302 is currently being used, that 25% of the capacity of the GPU 304 is currently being used, and that 50% of the memory 326 is currently being used.
  • the environment map 322 may indicate that in an hour, the user typically launches a photo editing application that consumes resources of the processor 302 and the memory 326. For example, after the photo editing application is launched, 90% of the capacity of the processor 302 may be used and 80% of the capacity of the memory 326 may be used.
  • the decision making device 324 may determine that when the photo editing application is launched, the optimal settings for the remote access application 312 may be to select a codec 314 for video compression that uses the processing resources of the GPU 304 and not of the processor 302.
  • the remote access application 312 may have a variety of different codecs 314 that can be selected.
  • the codecs 314 may include different video codecs that use different amounts of resources of the processor 302 and/or the GPU 304.
  • one of the codecs 314 may use the processor 302 and not the GPU 304.
  • Another one of the codecs 314 may use the GPU 304 and not the processor 302.
  • Another one of the codecs 314 may use 50% of the GPU 304 and 50% of the processor 302, and so forth.
  • the codec 314 may be selected based on the available amount of resources of the processor 302 and the GPU 304.
  • the codecs 314 may include different audio codecs.
  • the settings may change how subsampling is used. For example, video may be encoded at a lower resolution for chroma than for luma data to reduce the processing resources that are consumed.
  • Other settings may include image processors that may adjust each frame of video (e.g., rotate, resize, and the like).
  • Other settings may include defining a number of threads of the processor 302 to be used when encoding and decoding each video frame, and so forth.
  • the decision making device 324 may generate optimal settings that balance the resources used by the photo editing application as well as the remote access application 312. As a result, both the photo editing application and the remote access application 312 may be able to provide the best possible user experience.
  • the decision making device 324 may anticipate the change to the environmental workload information based on the environment map 322 that predicted the change caused by execution of another application (e.g., the photo editing application). By anticipating the change, the decision making device 324 may transmit a signal to the processor 302 to change the settings of the remote access application 312 to match the optimal settings. For example, the processor 302 may select another codec 314 that uses the GPU 304 rather than the processor 302.
  • the workload monitor 320 may detect changes to the environmental workload information, which may cause changes to the environment map 322.
  • the decision making device 324 may analyze the changes to the environment map 322 and generate optimal settings for the remote access application 312.
  • the decision making device 324 may provide the optimal settings to the processor 302, which may then change the settings of the remote access application 312 to match the optimal settings. For example, a different codec 314 may be selected.
  • the second application may be terminated.
  • the environmental workload information may change again, causing the environment map 322 to change again.
  • the decision making device 324 may analyze the changes to the environment map 322 and generate optimal settings for the remote access application 312.
  • the decision making device 324 may provide the optimal settings to the processor 302, which may then change the settings of the remote access application 312 to match the optimal settings.
  • a different codec 314 may be selected.
  • a codec 314 that uses the processor 302 and not the GPU 304 may be selected again.
  • the second application may be a video game that uses a large amount of the capacity of the GPU 304 and memory 326.
  • the optimal settings may be to use a codec that uses the processor 302 and not the GPU 304.
  • the optimal settings may also be to create a temporary partition in the memory 306 rather than using the memory 326, and so forth.
  • the settings of the remote access application 312 may be automatically changed as the environment map 322 changes due to execution of additional applications 310.
  • the decision making device 324 may decide how to balance the available resources to maximize the performance of the remote access application 312, as well as the other applications 310 being executed on the apparatus 300. For example, the decision making device 324 may generate optimal settings for the remote access application 312 to achieve the desired balance.
  • the processor 302 may then change the settings of the remote access application 312 to match the optimal settings determined by the machine learning model.
  • FIG. 4 illustrates a flow diagram of an example method 400 for dynamically adjusting settings of a remote access application based on environmental workloads of the present disclosure.
  • the method 400 may be performed by the apparatus 100 illustrated in FIG. 1 , the apparatus 300 illustrated in FIG. 3, or the apparatus 500 illustrated in FIG. 5, and described below.
  • the method 400 begins.
  • the method 400 collects environmental workload information of the computing device in response to activation of a remote access session.
  • a computing device may be connected to a remotely located computing device via the remote access session.
  • the remote access session may be established via a remote access application on the computing device (e.g., a sending device).
  • the remote access session may include the computing device sending a virtual desktop image to the remotely located computing device.
  • the environmental workload information may include an amount of usage of processing resources and memory resources.
  • the usage of the processing resources may include CPU usage and GPU usage.
  • the usage of the memory resources may include RAM usage, hard disk drive usage, ROM usage, and the like.
  • the method 400 determines optimal settings of the remote access session based on a change to the environmental workload information caused by execution of a second application. For example, when the second application is executed, the environmental workload information may change. For example, execution of the second application may cause the CPU usage to increase.
  • the optimal settings of the remote access session may be to use more GPU resources and less CPU resources.
  • the remote access application associated with the remote access session may select a different codec to compress video that uses GPU resources and no CPU resources.
  • the optimal settings may be determined by a decision making device.
  • the decision making device may be a machine learning model.
  • the decision making device may be a processor that uses presets to determine optimal settings.
  • the method 400 changes settings of the remote access session to match the optimal settings that are determined in response to the change to the environmental workload information caused by the execution of the second application.
  • the changes to the settings may include selecting a different video codec, changing a subsampling process (e.g., sampling less chroma values), changing a number of frames of video that are analyzed for image processing, changing a number of threads of a processor used to encode and decode video frames, and the like.
  • the method 400 ends.
  • FIG. 5 illustrates an example of an apparatus 500.
  • the apparatus 500 may be the apparatus 100 or 202.
  • the apparatus 500 may include a processor 502 and a non-transitory computer readable storage medium 504.
  • the non-transitory computer readable storage medium 504 may include instructions 506, 508, 510, and 512 that, when executed by the processor 502, cause the processor 502 to perform various functions.
  • the instructions 506 may include connecting instructions 506.
  • the instructions 506 may connect to a remote computing device via a remote access session with an initial setting.
  • the instructions 508 may include generating instructions.
  • the instructions 508 may generate an environment map of the apparatus.
  • the environment map may be based on a user profile, a workstation profile, a current environmental workload of the apparatus 500, available settings of a remote access application associated with the remote access session, and the like.
  • the instructions 510 may include detecting instructions.
  • the instructions 510 may detect a change to the environment map of the apparatus caused by execution of a second application.
  • the instructions 512 may include changing instructions.
  • the instructions 512 may change the initial setting to an optimized setting in response to the change to the environment map that is detected and caused by execution of the second application.
  • the change may be to select a different video codec to balance system resources between the remote access session and the second application.
  • the instructions may further include instructions to detect that the environment map has returned to an original environment map in response to termination of the second application.
  • the original environment map may be associated with a time when the remote access session was initiated.
  • the optimized settings may be changed back to the initial setting.
  • video codec may be changed back to the original video codec that was selected when the remote access session was initiated.

Abstract

In example implementations, an apparatus is provided. The apparatus includes a communication interface, a workload monitor, a processor, and a non-transitory computer readable medium. The communication interface is to establish a communication session with a remote computing device. The workload monitor is to gather environmental workload information of the apparatus. The non-transitory computer readable medium stores instructions, which when executed, cause the processor to execute a remote access application with initial settings to initiate the communication session with the remote computing device, detect a change to the environmental workload information caused by execution of a second application, and change settings of the remote access application in response to the change to the environmental workload information caused by the second application.

Description

ADJUSTMENTS OF REMOTE ACCESS APPLICATIONS BASED ON WORKLOADS
BACKGROUND
[0001] Computing devices can be used to communicate with other computing devices remotely. For example, computing devices can use remote access tools to access remotely located computing devices to access data. For example, a computing device can access another workstation or home computer to access files on the remote devices or execute applications hosted by the remote devices, and so forth. The remote access tools can be used to provide additional functionality, such as communicating via video calls.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG. 1 is a block diagram of an example an apparatus of the present disclosure with a remote access application that can dynamically adjust settings based on environmental workloads of the apparatus;
[0003] FIG. 2 is a block diagram of the example apparatus in a network with other computing devices executing the remote access application of the present disclosure;
[0004] FIG. 3 is a more detailed block diagram of an example apparatus of the present disclosure with a remote access application that can dynamically adjust settings based on environmental workloads of the apparatus;
[0005] FIG. 4 is a flow chart of an example method to dynamically adjust settings of a remote access application based on environmental workloads of the present disclosure; and
[0006] FIG. 5 is an example non-transitory computer readable storage medium storing instructions executed by a processor to dynamically adjust settings of a remote access toll based on environmental workloads of the present disclosure.
DETAILED DESCRIPTION
[0007] Examples described herein provide an apparatus and method to dynamically adjust settings of a remote access application based on environmental workloads. As discussed above, computing devices can be used to communicate with other computing devices remotely. For example, computing devices can allow users to remotely connect to another computing device and to execute software on a sender device to make it appear as if the user is accessing the remote device locally. Remote access applications can also provide video conferencing applications that allow two or more users to communicate with one another.
[0008] Computing devices can also be used to perform other tasks, computations, execute other applications, and the like. A computing device may have limited processing and memory resources. The remote access application may consume a certain amount of processing and memory resources to process video images, audio data, and other types of data that may be transmitted during a video call to other computing devices. When other applications are also executed while the remote access application is being executed, certain resources may be overconsumed by the computing device, leading to a degradation of the user experience of the remote access application. For example, due to a lack of processing resources available, the video quality may be degraded, causing a delay in the video transmission, a mismatch of the video with the audio causing lip sync issues, and the like.
[0009] The present disclosure provides an apparatus and method that can dynamically adjust settings of remote access applications to compensate for changes to available resources on an apparatus or computing device. For example, the apparatus may gather environmental workload information and make changes to settings of the remote access applications as available processing and/or memory resources change over time while the remote access application is being executed.
[0010] The remote access application may have adjustable advanced settings that can adjust how video is compressed, the audio quality level, how text is rendered, and the like. Changes to these advanced settings can improve the remote access session experience as the environmental workload changes.
[0011] For example, if applications are being run that consume large amounts of the central processing unit (CPU), the remote access application may use available processing resources on a graphical processing unit (GPU), or vice versa. If the random access memory (RAM) is being consumed by other applications, the remote access application may temporarily use available memory on a solid state drive or hard-drive of the apparatus, and so forth.
[0012] In an example, the changes may be made based on preset rules or machine learning algorithms. For example, the machine learning algorithms can be trained based on a model to make decisions as to how the advanced settings should be adjusted based on the observed environmental workloads. Thus, the present disclosure may maintain a quality user experience for a remote access session even as the amount of available processing and/or memory resources changes over time on the apparatus.
[0013] FIG. 1 illustrates an example apparatus 100 of the present disclosure. The apparatus 100 may be deployed as a desktop computer, a laptop computer, a tablet computer, or any other type of computing device. The apparatus 100 may include a display, input devices (e.g., a keyboard, a touchscreen, a mouse, a trackpad, and the like), and other components that are not shown.
[0014] In an example, the apparatus 100 may include a processor 102, a memory 104, a workload monitor 112, and a communication interface 114. The processor 102 may be communicatively coupled to the memory 104, the workload monitor 112, and the communication interface 114.
[0015] In an example, the memory 104 may be a non-transitory computer readable medium to store information. For example, the memory 104 may be a solid state drive, a hard disk drive, a random access memory (RAM), a readonly memory (ROM), and the like. [0016] In an example, the memory 104 may store instructions 106, applications 108, and a remote access application 110. The instructions 106 may be executed by the processor 102 to perform various functions as described herein. For example, the instructions 106 may cause the processor 102 to execute the remote access application 110, to detect a change to environmental workload information caused by execution of a second application (e.g., one of the applications 108), and to change settings of the remote access application 110 in response to the change to the environmental workload information caused by the second application. Details of the functions executed by the processor 102 in accordance with the instructions 106 are discussed in further details below.
[0017] The applications 108 may include other programs that can be executed by the processor 102. For example, the applications 108 may include photo editing software, video games, content streaming applications, productivity programs (e.g., word processing, spreadsheet, database, and the like), web browsers, and the like.
[0018] The remote access application 110 may be a tool that can allow the apparatus 100 to connect to other remotely located devices. For example, the remote access application may allow the apparatus 100 to connect to a server to access files, to conduct a video call, and the like. For example, the apparatus 100 may connect to a remotely located device via the communication interface 114. The communication interface 114 may be a wired (e.g., an Ethernet connection) or wireless interface (e.g., a Wi-Fi radio).
[0019] FIG. 2 illustrates an example network 200 that includes the apparatus 100 and an example of how the apparatus 100 can connect to a computing device 202 via the remote access application 110. In an example, the network 200 may include an Internet protocol (IP) network 204. The IP network 204 has been simplified for ease of explanation and may include additional network elements that are not shown (e.g., gateways, firewalls, border elements, additional access networks (e.g., a cellular network, a broadband network, and the like), network switches, and the so forth.
[0020] In an example, the IP network 204 may include an application server (AS) 206 and a database (DB) 208. The DB 208 may store various information. In an example, the AS 206 and DB 208 may be managed by an Internet service provider or communications service provider to allow the computing device 202 connect to the apparatus 100 over the IP network 204.
[0021] In an example, the computing device 202 may be a desktop computer, a laptop computer, a server, and the like. The computing device 202 may be located remotely from the apparatus 100. For example, the computing device 202 may be located at a home location. The apparatus 100 may be a computing device located at an office location. The apparatus 100 may include a display 120 to provide a graphical user interface (GUI) and input devices 122 and 124. For example, the input device 122 may be a keyboard and the input device 124 may be a mouse or a trackpad. The computing device 202 may also include a display with a GUI and input devices.
[0022] In an example, the apparatus 100 may launch the remote access application 110 in response to a request to connect from the computing device 202 to establish a remote access session. For example, the apparatus 100 may establish a wired or wireless connection over the IP network 204 via the communication interface 114. The apparatus 100 may be a sender device that sends video images and/or data to the computing device 202. For example, the apparatus 100 may transmit video images of a virtual desktop to the computing device 202 to make it appear as if the user on the computing device 202 is accessing the apparatus 100 locally.
[0023] Referring back to FIG. 1 , the remote access application 110 may include various settings that optimize how the remote access application 110 performs. For example, the settings may include various settings that can affect video quality, audio quality, compute speed, network delivery, and so forth. Example settings may include selecting a type of video codec that is used for compressing video, selecting a type of audio codec that is used for processing audio, selecting a refresh rate for video, selecting a compression rate for data transmission, and the like.
[0024] In an example, the processor 102 may automatically change settings of the remote access application 110 based on environmental workload information obtained by the workload monitor 112. The workload monitor 112 may be communicatively coupled to the processor 102 and the memory 104 to collect environmental workload information. The environmental workload information may include operational status information of the apparatus 100. Said another way, the environmental workload monitor 112 may monitor a usage of processing resources (e.g., the processor 102 or a graphical processing unit (GPU)), usage of memory resources (e.g., the memory 104, or any additional memory in the apparatus 100), processing threads used, and the like. The environmental workload monitor 112 may also collect information related to what computing resources are being consumed by the remote access application 110 and any other applications 108 that are being executed by the processor 102. The environmental workload information may also include what version of remote access application 110 is being executed and what settings are available on the remote access application 110.
[0025] The processor 102 may receive the environmental workload information and make changes to settings of the remote access application 110 to balance the available amount of computing resources between the remote access application 110 and other applications 108 that are being executed on the apparatus 100. In other words, the processor 102 may try to make changes to the settings of the remote access application 110 to optimize the performance and/or user experience of the remote access application 110 and any other applications 108 that may be executed simultaneously on the apparatus 100. [0026] FIG. 3 illustrates a more detailed block diagram of an apparatus 300 that describes in more detail how the changes to the settings may be performed based on the environmental workload information. In an example, the apparatus 300 may be similar to the apparatus 100. For example, the apparatus 300 may include a processor 302, a memory 306, a workload monitor 320, and a communication interface 328. The processor 302 may be communicatively coupled to the memory 306, the workload monitor 320, and the communication interface 328.
[0027] The communication interface 328 may be a wired or wireless communication interface. For example, the communication interface 328 may be an Ethernet connection, a Wi-Fi radio, and the like.
[0028] The memory 306 may be a non-transitory computer readable medium that may store various information. For example, the memory 306 may be a hard disk drive, a solid state drive, a random access memory (RAM), a readonly memory (ROM), and the like. The memory 306 may store instructions 308, applications 310, and a remote access application 312.
[0029] In an example the instructions 308 may be executed by the processor 302 to perform the functions described herein. For example, the instructions 308 may cause the processor to execute the remote access application 312, to detect a change to environmental workload information caused by execution of a second application (e.g., one of the applications 310), and to change settings of the remote access application 312 in response to the change to the environmental workload information caused by the second application.
[0030] The applications 310 may include other programs that can be executed by the processor 302. For example, the applications 310 may include photo editing software, video games, content streaming applications, productivity programs (e.g., word processing, spreadsheet, database, and the like), web browsers, and the like.
[0031] In an example, the apparatus 300 may further include a graphical processing unit (GPU) 304, a decision making device 324, and additional memory 326. The GPU 304 may be a dedicated graphics processor that can also be leveraged by the apparatus 300 to perform other processing tasks when available processing resources of the processor 302 are low.
[0032] The additional memory 326 may be separate from the memory 306. For example, the memory 306 may be a hard disk drive and the memory 326 may be RAM or a second hard disk drive, and so forth. When memory resources on the memory 306 run low, the processor 302 may allocate memory resources from the memory 326 to the applications 310 or to the remote access application 312, as described in further details below.
[0033] The decision making device 324 may be a machine learning model (e.g., instructions executed by the processor 302 to make automated decisions based on trained models) to automatically determine when settings of the remote access application 312 should be changed.
[0034] The machine learning model may apply a reinforcement learning model to determine settings of the remote access application 312 with less guidance or development bias, and to allow the machine learning model to create its own systems to determine settings outputs. Reinforcement learning can be structured as an agent that will change and interact with the environment, while an outside interpreter rewards the agent and indicates a positive or negative result for settings with respect to a previous state of the settings. The remote access session measured values of frames per second, image quality, and audio quality can be regarded as goals in which the higher these values can be achieved, the more positive rewards are granted, while lower values grant negative rewards. The rewards could also be dynamically updated in a continuous learning environment according to the current user profile, machine profile, and the current state of the system.
[0035] Another example of a machine learning model may be transfer learning. The transfer learning technique allows for trained models to define a best effort configuration and enhance the user experience of the remote access session for a user based on previously mapped scenarios. For example, knowledge gained while learning to recognize a high-quality image (positive scenario) could be applied when trying to achieve a high-fidelity stream in a remote session. The initial model could be leveraged as a base solution, and a centralized, cloud-based knowledge repository could be established with new and updated scenarios and problems that could be added to this cloud library and deployed to systems, such as operably coupled remote access management tools, with similar conditions. This cloud repository could also be populated with more than one base for various known scenarios and environments.
[0036] Also, a Long Short-Term Memory (LSTM) network can be established to consume the aggregated data or data created by various previously generated real-life or simulated scenarios that can be labeled and tied to ground truths crafted and deployed to reflect a selected remote access session configuration given the specific case and circumstances surrounding the system at the time. The LSTM model also benefits from a continued observation of the system, whereas sudden changes such as to internet connection quality, profile, and usage patterns are more readily processed, while the past knowledge is still taken into account, and new configurations are put in place.
[0037] Additionally, a clustering model can present the data set mapped by systems with the remote access sessions which are categorized into different sets of configuration clusters that are tied to given scenarios (where, for example, some configuration clusters favor a higher frame rate per second and lower input latency while other configuration clusters favor image and audio quality). These generated configuration clusters could then be turned into the configuration settings for the remote access application 312.
[0038] It should be noted that the above machine learning models are provided as examples. However, it should be noted that other machine learning models may also be deployed.
[0039] In an example, the decision making device 324 may use presets instead of the machine learning models. For example, a plurality of preset conditions may be stored in the memory 306. For example, the preset conditions may indicate that if a certain condition or scenario is met, then the settings of the remote access application 312 should be changed to a particular configuration.
[0040] As noted above, the remote access application 312 may be executed to allow the apparatus 300 to connect to another computing device. In an example, the apparatus 300 may be a home computer and another remotely located computing device may try to access the apparatus 300. As a result, the remote access application 312 may be executed to allow the remotely located computing device to connect to the apparatus 300. The apparatus 300 may transmit virtual desktop video images and other data to the remotely located computing device.
[0041] The workload monitor 320 may gather environmental workload information and generate an environment map 322. The environment map 322 may use the environmental workload information that is gathered, along with user profile 316 and workstation profile 318, to create a view of what computing resources are currently being used and how the usage of the computing resources may change at a future time. The decision making device 324 may use the environment map 322 to determine optimal settings for the remote access application 312 at a given time. If the settings of the remote access application 312 do not match the optimal settings determined by the decision making device 324, the processor 302 may change the settings on the remote access application 312 to match the optimal settings.
[0042] In an example, the user profile 316 may provide information associated with a user who is logged into the apparatus 300. For example, the user profile 316 may indicate typical applications 310 launched by the user and what dates and times (e.g., usage patterns) the user launches each application 310.
[0043] In an example, the workstation profile 318 may indicate available computing resources of the apparatus 300. For example, the workstation profile 318 may indicate a type of processor 302 (e.g., a clock speed, a number of threads, the type of processor 302, and the like), a type of GPU 304, an amount of memory available (e.g., the memory 306 may be a 500 gigabyte solid state drive that can be partitioned, the memory 326 may be 32 gigabytes of RAM), and so forth.
[0044] As noted above, the workload monitor 310 may monitor the amount of system resources that is currently being used. For example, the environmental workload information may include what applications 310 are being executed, amounts of processing power of the processor 302 and the GPU 304 that are being used, and the amounts of the memory 306 and memory 326 that are being used.
[0045] The environment map 322 may indicate that 67% of the capacity of the processor 302 is currently being used, that 25% of the capacity of the GPU 304 is currently being used, and that 50% of the memory 326 is currently being used. The environment map 322 may indicate that in an hour, the user typically launches a photo editing application that consumes resources of the processor 302 and the memory 326. For example, after the photo editing application is launched, 90% of the capacity of the processor 302 may be used and 80% of the capacity of the memory 326 may be used. Thus, the decision making device 324 may determine that when the photo editing application is launched, the optimal settings for the remote access application 312 may be to select a codec 314 for video compression that uses the processing resources of the GPU 304 and not of the processor 302.
[0046] The remote access application 312 may have a variety of different codecs 314 that can be selected. For example, the codecs 314 may include different video codecs that use different amounts of resources of the processor 302 and/or the GPU 304. For example, one of the codecs 314 may use the processor 302 and not the GPU 304. Another one of the codecs 314 may use the GPU 304 and not the processor 302. Another one of the codecs 314 may use 50% of the GPU 304 and 50% of the processor 302, and so forth. Thus, the codec 314 may be selected based on the available amount of resources of the processor 302 and the GPU 304.
[0047] Although the examples described herein discuss the settings in the context of selecting a codec 314, it should be noted that other settings may be configured. For example, the codecs 314 may include different audio codecs. The settings may change how subsampling is used. For example, video may be encoded at a lower resolution for chroma than for luma data to reduce the processing resources that are consumed. Other settings may include image processors that may adjust each frame of video (e.g., rotate, resize, and the like). Other settings may include defining a number of threads of the processor 302 to be used when encoding and decoding each video frame, and so forth. [0048] Thus, the decision making device 324 may generate optimal settings that balance the resources used by the photo editing application as well as the remote access application 312. As a result, both the photo editing application and the remote access application 312 may be able to provide the best possible user experience.
[0049] In an example, the decision making device 324 may anticipate the change to the environmental workload information based on the environment map 322 that predicted the change caused by execution of another application (e.g., the photo editing application). By anticipating the change, the decision making device 324 may transmit a signal to the processor 302 to change the settings of the remote access application 312 to match the optimal settings. For example, the processor 302 may select another codec 314 that uses the GPU 304 rather than the processor 302.
[0050] In another example, when the second application (e.g., the photo editing application) is launched, the workload monitor 320 may detect changes to the environmental workload information, which may cause changes to the environment map 322. The decision making device 324 may analyze the changes to the environment map 322 and generate optimal settings for the remote access application 312. The decision making device 324 may provide the optimal settings to the processor 302, which may then change the settings of the remote access application 312 to match the optimal settings. For example, a different codec 314 may be selected.
[0051] At a later time, the second application may be terminated. Thus, the environmental workload information may change again, causing the environment map 322 to change again. The decision making device 324 may analyze the changes to the environment map 322 and generate optimal settings for the remote access application 312. The decision making device 324 may provide the optimal settings to the processor 302, which may then change the settings of the remote access application 312 to match the optimal settings. For example, a different codec 314 may be selected. For example, a codec 314 that uses the processor 302 and not the GPU 304 may be selected again.
[0052] In another example, the second application may be a video game that uses a large amount of the capacity of the GPU 304 and memory 326. Thus, the optimal settings may be to use a codec that uses the processor 302 and not the GPU 304. The optimal settings may also be to create a temporary partition in the memory 306 rather than using the memory 326, and so forth.
[0053] Thus, the settings of the remote access application 312 may be automatically changed as the environment map 322 changes due to execution of additional applications 310. The decision making device 324 may decide how to balance the available resources to maximize the performance of the remote access application 312, as well as the other applications 310 being executed on the apparatus 300. For example, the decision making device 324 may generate optimal settings for the remote access application 312 to achieve the desired balance. The processor 302 may then change the settings of the remote access application 312 to match the optimal settings determined by the machine learning model.
[0054] FIG. 4 illustrates a flow diagram of an example method 400 for dynamically adjusting settings of a remote access application based on environmental workloads of the present disclosure. In an example, the method 400 may be performed by the apparatus 100 illustrated in FIG. 1 , the apparatus 300 illustrated in FIG. 3, or the apparatus 500 illustrated in FIG. 5, and described below.
[0055] At block 402, the method 400 begins. At block 404, the method 400 collects environmental workload information of the computing device in response to activation of a remote access session. For example, a computing device may be connected to a remotely located computing device via the remote access session. The remote access session may be established via a remote access application on the computing device (e.g., a sending device). The remote access session may include the computing device sending a virtual desktop image to the remotely located computing device.
[0056] The environmental workload information may include an amount of usage of processing resources and memory resources. The usage of the processing resources may include CPU usage and GPU usage. The usage of the memory resources may include RAM usage, hard disk drive usage, ROM usage, and the like.
[0057] At block 406, the method 400 determines optimal settings of the remote access session based on a change to the environmental workload information caused by execution of a second application. For example, when the second application is executed, the environmental workload information may change. For example, execution of the second application may cause the CPU usage to increase. The optimal settings of the remote access session may be to use more GPU resources and less CPU resources. For example, the remote access application associated with the remote access session may select a different codec to compress video that uses GPU resources and no CPU resources.
[0058] In an example, the optimal settings may be determined by a decision making device. The decision making device may be a machine learning model. In another example, the decision making device may be a processor that uses presets to determine optimal settings.
[0059] At block 408, the method 400 changes settings of the remote access session to match the optimal settings that are determined in response to the change to the environmental workload information caused by the execution of the second application. For example, the changes to the settings may include selecting a different video codec, changing a subsampling process (e.g., sampling less chroma values), changing a number of frames of video that are analyzed for image processing, changing a number of threads of a processor used to encode and decode video frames, and the like. At block 410, the method 400 ends.
[0060] FIG. 5 illustrates an example of an apparatus 500. In an example, the apparatus 500 may be the apparatus 100 or 202. In an example, the apparatus 500 may include a processor 502 and a non-transitory computer readable storage medium 504. The non-transitory computer readable storage medium 504 may include instructions 506, 508, 510, and 512 that, when executed by the processor 502, cause the processor 502 to perform various functions.
[0061] In an example, the instructions 506 may include connecting instructions 506. For example, the instructions 506 may connect to a remote computing device via a remote access session with an initial setting.
[0062] The instructions 508 may include generating instructions. For example, the instructions 508 may generate an environment map of the apparatus. As noted above, the environment map may be based on a user profile, a workstation profile, a current environmental workload of the apparatus 500, available settings of a remote access application associated with the remote access session, and the like.
[0063] The instructions 510 may include detecting instructions. For example, the instructions 510 may detect a change to the environment map of the apparatus caused by execution of a second application.
[0064] The instructions 512 may include changing instructions. For example, the instructions 512 may change the initial setting to an optimized setting in response to the change to the environment map that is detected and caused by execution of the second application. The change may be to select a different video codec to balance system resources between the remote access session and the second application.
[0065] In an example, the instructions may further include instructions to detect that the environment map has returned to an original environment map in response to termination of the second application. For example, the original environment map may be associated with a time when the remote access session was initiated. In response to detecting this change back to the original environment map, the optimized settings may be changed back to the initial setting. For example, video codec may be changed back to the original video codec that was selected when the remote access session was initiated.
[0066] It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.

Claims

1. An apparatus, comprising: a communication interface to establish a communication session with a remote computing device; a workload monitor to gather environmental workload information of the apparatus; a processor; and a non-transitory computer readable medium to store instructions, which when executed, cause the processor to: execute a remote access application with initial settings to initiate the communication session with the remote computing device; detect a change to the environmental workload information caused by execution of a second application; and change the initial settings of the remote access application to optimal settings in response to the change to the environmental workload information caused by the execution of the second application.
2. The apparatus of claim 1 , further comprising: a decision making device to determine the optimal settings based on the environmental workload information.
3. The apparatus of claim 2, wherein the decision making device comprises a machine learning model.
4. The apparatus of claim 1 , wherein the workload monitor is to monitor usage of the processor, a graphical processing unit (GPU), and a memory.
5. The apparatus of claim 1 , wherein the non-transitory computer readable medium is to store a profile of the apparatus and a user profile of application usage on the apparatus.
6. A method, comprising: collecting, by a processor of a computing device, environmental workload information of the computing device in response to activation of a remote access session; determining, by the processor, optimal settings of the remote access session based on a change to the environmental workload information caused by execution of a second application; and changing, by the processor, settings of the remote access session to match the optimal settings that are determined in response to the change to the environmental workload information caused by the execution of the second application.
7. The method of claim 6, wherein the environmental workload information comprises an amount of usage of processing resources and memory resources.
8. The method of claim 6, wherein the determining is performed by a machine learning model.
9. The method of claim 6, wherein the determining is performed based on presets.
10. The method of claim 6, wherein the remote access session comprises a virtual desktop.
11 . The method of claim 10, wherein the changing comprises selecting a video codec that balances available processing resources between the remote access session and the second application.
12. A non-transitory computer readable storage medium encoded with instructions which, when executed, cause a processor of an apparatus to: connect to a remote computing device via a remote access session with an initial setting; 18 generate an environment map of the apparatus; detect a change to the environment map of the apparatus caused by execution of a second application; and change the initial setting to an optimized setting in response to the change to the environment map that is detected and caused by execution of the second application.
13. The non-transitory computer readable storage medium of claim 12, wherein the environment map is based on a user profile, a workstation profile, a current environmental workload, and available settings of a remote access application associated with the remote access session.
14. The non-transitory computer readable storage medium of claim 12, wherein the instructions to change the initial setting to the optimized setting comprises instructions to: select a different video codec to balance system resources between the remote access session and the second application.
15. The non-transitory computer readable storage medium of claim 12, wherein the instructions further cause the processor to: detect that the environment map has returned to an original environment map in response to a termination of the second application; and change the optimized setting back to the initial setting in response to the environment map returning to the original environment map.
PCT/US2021/046634 2021-08-19 2021-08-19 Adjustments of remote access applications based on workloads WO2023022717A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2021/046634 WO2023022717A1 (en) 2021-08-19 2021-08-19 Adjustments of remote access applications based on workloads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/046634 WO2023022717A1 (en) 2021-08-19 2021-08-19 Adjustments of remote access applications based on workloads

Publications (1)

Publication Number Publication Date
WO2023022717A1 true WO2023022717A1 (en) 2023-02-23

Family

ID=85239666

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/046634 WO2023022717A1 (en) 2021-08-19 2021-08-19 Adjustments of remote access applications based on workloads

Country Status (1)

Country Link
WO (1) WO2023022717A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007737A1 (en) * 2011-07-01 2013-01-03 Electronics And Telecommunications Research Institute Method and architecture for virtual desktop service
US20140032735A1 (en) * 2008-06-17 2014-01-30 Abhinav Kapoor Adaptive rate of screen capture in screen sharing
US20180288161A1 (en) * 2016-11-17 2018-10-04 BrainofT Inc. Utilizing context information of environment component regions for event/activity prediction
US20190342749A1 (en) * 2016-08-14 2019-11-07 Liveperson, Inc. Systems and methods for real-time remote control of mobile applications
US20200026344A1 (en) * 2018-07-19 2020-01-23 Dell Products L.P. System and method to maintain optimal system performance within user defined system level power cap in a changing workload environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032735A1 (en) * 2008-06-17 2014-01-30 Abhinav Kapoor Adaptive rate of screen capture in screen sharing
US20130007737A1 (en) * 2011-07-01 2013-01-03 Electronics And Telecommunications Research Institute Method and architecture for virtual desktop service
US20190342749A1 (en) * 2016-08-14 2019-11-07 Liveperson, Inc. Systems and methods for real-time remote control of mobile applications
US20180288161A1 (en) * 2016-11-17 2018-10-04 BrainofT Inc. Utilizing context information of environment component regions for event/activity prediction
US20200026344A1 (en) * 2018-07-19 2020-01-23 Dell Products L.P. System and method to maintain optimal system performance within user defined system level power cap in a changing workload environment

Similar Documents

Publication Publication Date Title
US11340927B2 (en) Application-based computing resource management
JP5459693B2 (en) Adaptive screen virtualization method and system using terminal
US8935317B2 (en) Dynamic partitioning of applications between clients and servers
EP3241119B1 (en) Methods and apparatus for adaptive bandwidth-based communication management
US10499214B2 (en) Data usage analytics application for dynamic control of data usage on a client device
US11089076B1 (en) Automated detection of capacity for video streaming origin server
Liubogoshchev et al. Adaptive cloud-based extended reality: Modeling and optimization
CN113163002A (en) Server switching method and device and storage medium
WO2023174254A1 (en) Video posting method and apparatus, and device and storage medium
CN113117326A (en) Frame rate control method and device
CN114389959B (en) Network congestion control method, device, electronic equipment and storage medium
US9307225B2 (en) Adaptive stereoscopic 3D streaming
CN106686635B (en) Data transmission method and device based on control and configuration protocol of wireless access point
CN117201862B (en) Real-time interaction method based on multi-screen collaboration and related device
CN114245175A (en) Video transcoding method and device, electronic equipment and storage medium
CN112104867B (en) Video processing method, video processing device, intelligent equipment and storage medium
WO2023022717A1 (en) Adjustments of remote access applications based on workloads
WO2015196586A1 (en) Virtual desktop configuration and acquisition method and apparatus
CN112565818B (en) Two-three-dimensional integrated operation station platform construction method and electronic equipment
EP2819013B1 (en) Automated adaption of a Codec
CN113626402A (en) Log data acquisition method and device, electronic equipment and storage medium
CN111510715B (en) Video processing method, system, computer device and storage medium
CN113965779A (en) Cloud game data transmission method, device and system and electronic equipment
WO2022271189A1 (en) Remote access session management
Nguyen et al. An Efficient Video Streaming Architecture with QoS Control for Virtual Desktop Infrastructure in Cloud Computing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21954389

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE